demexp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Demexp-dev] Re: Add response: erreur pyhton


From: Lyu Abe
Subject: Re: [Demexp-dev] Re: Add response: erreur pyhton
Date: Wed, 12 Mar 2008 11:04:24 +0100
User-agent: Thunderbird 2.0.0.12 (Windows/20080213)

Hi again,

I got this error:

======================================
  File "C:\Program Files\wamp\www\Demexp\python\login.py", line 335, in
validate_new_response

s.add_response(cookie,this_question[0]['q_id'],new_response.encode('utf8'),new_response_link.encode('utf8'))

  File "C:\Program Files\Python25\Lib\xmlrpclib.py", line 1147, in __call__
    return self.__send(self.__name, args)

  File "C:\Program Files\Python25\Lib\xmlrpclib.py", line 1437, in
__request
    verbose=self.__verbose

  File "C:\Program Files\Python25\Lib\xmlrpclib.py", line 1201, in request
    return self._parse_response(h.getfile(), sock)

  File "C:\Program Files\Python25\Lib\xmlrpclib.py", line 1340, in
_parse_response
    return u.close()

  File "C:\Program Files\Python25\Lib\xmlrpclib.py", line 787, in close
    raise Fault(**self._stack[0])

Fault: <Fault 1: 'exceptions.Exception:method "add_response" is not
supported'>
========================================

and the same error for new_question:

Fault: <Fault 1: 'exceptions.Exception:method "new_question" is not
supported'>

I am using the demo/demo account.

        Lyu















David MENTRE a écrit :
Hello Lyu,

2008/3/11, Lyu Abe <address@hidden>:
        this_question = s.question_info(cookie, index, 1)
        marshalled_qu = marshal.dumps(this_question[0]['q_id'])
        marshalled_resp = marshal.dumps(new_response)
        s.add_response(cookie, marshalled_qu,marshalled_resp,"")

Well, I don't really understand why you would need such marshal calls.

If you look at the code of the XML RPC proxy, you see for example this
code to add a new response (line 157):

    def add_response(self, cookie, question_id, response_desc, response_link):
        ret = self.onc.add_response(cookie, question_id,
                                    response_desc.encode('utf_8'),
                                    response_link.encode('utf_8'))
        if ret != DemexpRpc.const.rt_ok:
            raise RpcError(ret)
        return ret

"cookie" is the cookie you got from login().

"question_id" is a Python integer.

"response_desc" and "response_link" are two Python strings.

When you use ONC RPC calls, you can use regular Python simple types as
arguments. Where are those marshal calls coming from?

You'll find other examples of Python code to call the demexp server in
the source code of pydemexp (http://thomas.enix.org/pub/pydemexp/), in
files "add-question.py" and "list-question.py".

If you are able to get your new response as a regular Python string,
you should be able to add it to the server pretty easily.

I hope this helps,
Yours,
d.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]