Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中发送HTTP Get Web请求?_Python_Http_Streamreader_Webrequest - Fatal编程技术网

如何在Python中发送HTTP Get Web请求?

如何在Python中发送HTTP Get Web请求?,python,http,streamreader,webrequest,Python,Http,Streamreader,Webrequest,我在向网站发送数据和获取Python响应时遇到问题。我见过类似的问题,但似乎没有一个能达到我的目标 这是我试图移植到Python的C#代码: static void Request(Uri selectedUri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(selectedUri); request.ServicePoint.BindIPEndPointDelegate

我在向网站发送数据和获取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

任何帮助都将不胜感激

在Python中,您可以使用
urllib2
()来完成所有这些工作

很简单:

import urllib2
f =  urllib2.urlopen(url)
print f.read() 
将打印收到的HTTP响应

要传递GET/POST参数,可以使用
urllib.urlencode()
函数。有关更多信息,请参阅您可以使用的

你也可以使用

或者


这个问题是在请求库存在之前提出的。因此,我可以键入“print urllib2.urlopen(url,数据数组).read()”?是的。read()函数的输出是一个字符串,您可以打印它,分配给变量etcIn Python 3,将
urllib2
替换为
urllib.request
。啊,我遇到的一个问题是我需要用httplib发送请求。谢谢httplib模块已在Python 3.0中重命名为http.client。在Python 3中,将
urllib2
替换为
urllib.request
import urllib2
content = urllib2.urlopen(some_url).read()
print content
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