2011-01-25 2 views
0

Я пытаюсь сделать то, что должно быть довольно простым приложением URL с помощью Google appengine. Однако он продолжает терпеть неудачу.Appengine urlfetch debugging

result = urlfetch.fetch(url=apiurl, method=urlfetch.POST) 

Я также попытался с помощью HTTPLIB:

conn = httplib.HTTPConnection("api.eve-online.com") 
conn.request("POST", "/char/CharacterSheet.xml.aspx", params, headers) 

response = conn.getresponse() 
self.response.out.write(response.read()) 

Оба эти возвращения очень похожие ошибки,

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__ 
    handler.get(*groups) 
    File "C:\Users\Martin\Documents\google_appengine\martindevans\eveapi.py", line 24, in get 
    method=urlfetch.POST) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 241, in fetch 
    return rpc.get_result() 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 530, in get_result 
    return self.__get_result_hook(self) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 315, in _get_fetch_result 
    rpc.check_success() 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 502, in check_success 
    self.__rpc.CheckSuccess() 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_rpc.py", line 149, in _WaitImpl 
    self.request, self.response) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub.py", line 80, in MakeSyncCall 
    method(request, response) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch_stub.py", line 133, in _Dynamic_Fetch 
    deadline=deadline) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch_stub.py", line 223, in _RetrieveURL 
    connection.request(method, full_path, payload, adjusted_headers) 
    File "C:\Python27\lib\httplib.py", line 946, in request 
    self._send_request(method, url, body, headers) 
    File "C:\Python27\lib\httplib.py", line 986, in _send_request 
    self.putheader(hdr, value) 
    File "C:\Python27\lib\httplib.py", line 924, in putheader 
    str = '%s: %s' % (header, '\r\n\t'.join(values)) 
TypeError: sequence item 0: expected string, int found 

Я понятия не имею, что здесь происходит. Я не предоставляю никаких последовательностей методу urlfetch, поэтому я не уверен, где начать отладку.

редактировать: Как спросил, вот заголовки:

headers = { "Content-type": "application/x-www-form-urlencoded" } 

Это не может быть проблемой, хотя, потому что первый подход даже не устанавливает никаких заголовков!

+0

что в ваших 'headers'? жалоба об ошибке в 'header' –

+0

Добавлены заголовки, хотя я не думаю, что они могут вызвать проблему – Martin

ответ

5

Вы используете Python 2.7? Он поддерживает только 2.5.2. В то время как 2,6 в основном работает, 2.7 нет.

+1

+1 для заметок в папке python27. Перейдите на Python 2.5.4 (или любую другую версию 2.5. *) И повторите попытку. Думаю, тогда это сработает. –

+0

О, ничего себе, хорошо пойман. У меня есть несколько версий python, как сообщить appengine, какой из них использовать? – Martin

+1

@Martin: вы можете определенно использовать 'C: /PATH/TO/PYTHON2.5 C:/PATH/TO/AppEngine/dev_appserver.py'. Я не использовал Windows Launcher, но версия Mac имеет опцию в настройках для установки исполняемого файла python; если вы используете пусковую установку, вы можете захотеть проверить это предпочтение. – geoffspear

Смежные вопросы