0

私はかなり長い間ここで立ち往生していますが、役立つものは何も見つかりません。Web サイトに接続して、Python3 で応答 json ファイルを取得しようとしています。コードは次のようになります。

conn = http.client.HTTPConnection('host.address')
params = "xx"+ xx + "xx" + ...
conn.request('GET', '/a/b/c', params)
resp = conn.getresponse()

これは実際にはjsonファイルを返しませんが、エラーページであるWebページhttp://host.address/a/b/cを返します。ただし、次のコードを使用している間:

params = "xx"+ xx + "xx" + ...
resp = urllib.request.urlopen("http://host.address/a/b/c?"+params)

jsonファイルを正しく返します。コードの何が問題なのか分かりますか?

ありがとう

4

2 に答える 2

1

HTTP では、POST 要求のみが本文を持つことになっています。request() の 3 番目のパラメーターは、実際には本文です ( http://docs.python.org/py3k/library/http.client.html#http.client.HTTPConnection.requestを参照)。 2番目の例。

于 2012-09-17T21:55:52.753 に答える
0

@sqrtsbenの答えを例で補完するだけです:

import urllib.parse
import http.client

u = urllib.parse.urlparse("http://localhost:8080/index.php?utf8=✓")
conn = http.client.HTTPConnection(u.hostname, u.port)
if u.query == '':
    conn.request("GET", u.path)
else:
    conn.request("GET", u.path + '?' + u.query)
于 2015-12-09T08:54:07.533 に答える