在使用python请求时,我遇到了ConnectionRefusedError [WinError 10061]
的问题,原因是我的网络中存在网络设置和限制,或者公司的网络软件不允许这样做(我认为)。
但是我对致电requests.get()
时发生的事情很感兴趣。也许我不太擅长阅读文档,但找不到呼叫后发生的任何过程。
例如,为什么我通过浏览器访问URL是可以的,但是当我尝试通过请求访问URL时却失败了。
我要问的是调用get()方法后会发生什么过程:在本地主机启动服务器?配置吗?表格标题?它如何发送请求?
答案 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')