programing tip

Python에서 HTTP Get Web Request를 어떻게 보내나요?

itbloger 2020. 11. 4. 07:44
반응형

Python에서 HTTP Get Web Request를 어떻게 보내나요?


이 질문에 이미 답변이 있습니다.

웹 사이트에 데이터를 보내고 Python에서 응답을받는 데 문제가 있습니다. 나는 비슷한 질문을 보았지만 그들 중 어느 것도 내가 원하는 것을 성취하지 못하는 것 같습니다.

이것은 Python으로 이식하려는 C # 코드입니다.

    static void Request(Uri selectedUri)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(selectedUri);
        request.ServicePoint.BindIPEndPointDelegate = BindIPEndPointCallback;
        request.Method = "GET";
        request.Timeout = (int)Timeout.TotalMilliseconds;
        request.ReadWriteTimeout = (int)Timeout.TotalMilliseconds;
        request.CachePolicy = CachePolicy;
        request.UserAgent = UserAgent;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (StreamReader responseReader = new StreamReader(response.GetResponseStream()))
            {
                string responseText = responseReader.ReadToEnd();
                File.WriteAllText(UrlFileName, responseText.Trim(), Encoding.ASCII);
            }
        }
     }

다음은 Python에서의 나의 시도입니다.

def request():
web = httplib.HTTPConnection('https://someurl.com');
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
web.request("GET", "/heartbeat.jsp", headers);
response = web.getresponse();
stream = ""; #something is wrong here

어떤 도움을 주시면 감사하겠습니다!


urllib2 를 사용할 수 있습니다.

import urllib2
content = urllib2.urlopen(some_url).read()
print content

또한 httplib 를 사용할 수 있습니다.

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD","/index.html")
res = conn.getresponse()
print res.status, res.reason
# Result:
200 OK

또는 요청 라이브러리

import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
# Result:
200

Python에서는 urllib2( http://docs.python.org/2/library/urllib2.html )을 사용 하여 모든 작업을 수행 할 수 있습니다.

간단히 말해서 :

import urllib2
f =  urllib2.urlopen(url)
print f.read() 

수신 된 HTTP 응답을 인쇄합니다.

To pass GET/POST parameters the urllib.urlencode() function can be used. For more information, you can refer to the Official Urllib2 Tutorial

참고URL : https://stackoverflow.com/questions/17178483/how-do-you-send-an-http-get-web-request-in-python

반응형