我試圖與此代碼發送POST查詢:POST請求沒有通過
def open(self, url, params):
self.__opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
c = self.__opener.open(
urllib2.Request(
url,
urllib.urlencode(params),
{"User-agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"}
)
)
Class.open('http://example.com', {'username': 'test'});
但是服務器對我說該用戶名字段爲空。
urllib.Request('http://example.com?username=test');
它完美的工作。如何解決它?
這不是Python 3的沒有'urllib2'在Python 3。而且,雖然有一個'urllib',它只是一個與它的模塊封裝,而不是一個名爲'Request'的類。所以,首先告訴我們你使用的是哪個版本。 – abarnert
@abarnert,對不起。我試圖在Python 2.7.5中解釋它。 – qwerty
好的,下一個問題。在第一個版本中,您傳遞了'username = test'(www-form-encoded)作爲正文。在第二個版本中(我假設你真的在那裏使用'urllib2.Request',因爲沒有'urllib.Request'這樣的東西?),你將它傳遞給查詢字符串。雖然_many_ web服務會將這兩者視爲同一件事,但並不要求他們這樣做。 – abarnert