处理是否调用request.get()

时间:2018-11-27 08:51:42

标签: python python-requests

在使用python请求时,我遇到了ConnectionRefusedError [WinError 10061]的问题,原因是我的网络中存在网络设置和限制,或者公司的网络软件不允许这样做(我认为)。

但是我对致电requests.get()时发生的事情很感兴趣。也许我不太擅长阅读文档,但找不到呼叫后发生的任何过程。 例如,为什么我通过浏览器访问URL是可以的,但是当我尝试通过请求访问URL时却失败了。

我要问的是调用get()方法后会发生什么过程:在本地主机启动服务器?配置吗?表格标题?它如何发送请求?

1 个答案:

答案 0 :(得分:3)

通常,大多数公司对每个传出请求都使用代理服务器。一旦设置了连接设置,浏览器将读取它们并为每个请求进行设置。您可以通过检查浏览器中的设置来检查是否启用了代理。

但是,在发出python请求时,您将需要在请求中设置代理,如下所示:

    proxyDict = { 
                  "http"  : "192.168.100.3:8080", 
                  "https" : "Some/Same proxy for https", 
                  "ftp"   : "Some proxy for ftp (Optional)"
                }

    r = requests.get(url, headers=headers, proxies=proxyDict)

此外,浏览器还设置内容类型,请求标头和其他此类参数。您可以检查浏览器的开发者控制台,例如Google Chrome,和转到网络标签之一,查看请求中设置的所有参数,并在request.get()中隐含相同的参数。标题的情况下,应为:

r = requests.get(url, headers=headers, proxies=proxyDict, headers = {'Content-type':'application/json')