2011-01-25 8 views
0

Google App Engineでかなり単純なURLフェッチを実行しようとしています。しかし、それは失敗を続けます。Appengine urlfetchデバッグ

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

「ヘッダー」には何がありますか?エラーが「ヘッダ」について –

+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ランチャーを使用していませんが、Mac版では、設定でPython実行ファイルを設定するオプションがあります。ランチャーを使用している場合は、そのような設定を確認することができます。 – geoffspear

関連する問題