가이 코드와 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');
완벽하게 작동합니다. 그것을 고치는 방법?
를 파이썬 3에는'urllib2'이 없다, 그것은 그것의 모듈과 단지 꾸러미 'Request'라는 클래스를 가진 모듈이 아닙니다. 먼저, 실제로 어떤 버전을 사용하고 있는지 알려주십시오. – abarnert
@abarnert, 죄송합니다. 파이썬 2.7.5에서 해석하려고했습니다. – qwerty
OK, 다음 문제. 첫 번째 버전에서는 본문으로'username = test' (www-form-encoded)를 전달합니다. 두 번째 버전에서는 (실제로'urllib.Request'를 사용했다고 가정합니다. 왜냐하면'urllib.Request'와 같은 것이 없기 때문입니다), 당신은 그것을 쿼리 문자열에 전달할 것입니다. _ 많은 웹 서비스가이 두 가지를 동일한 것으로 취급하지만, 그렇게 할 필요는 없습니다. – abarnert