在两个不同的py virtualenv中使用相同包的不同HTTP响应

时间:2017-03-08 17:46:04

标签: python python-3.x python-requests virtualenv

我在同一个虚拟机中创建了两个虚拟环境。

pip freezepip list显示相同的已安装软件包。

requests Lib的输出不同。

我怎样才能看出是什么让他们与众不同?我应该提供一些代码吗?

  • requests = 2.13 with security
  • 的urllib = 1.20
  • python 3.4.5

1 个答案:

答案 0 :(得分:0)

首先,您确定您访问的页面每次都应该返回相同的内容吗? Some pages change with every request.

如果您确实应该获得相同的回复,请检查您发送的请求实际上是否相同。您可以使用requests_toolbelt

执行此操作
import requests
from requests_toolbelt.utils import dump

response = requests.post('http://google.com/', data={'foo': 'bar'})
data = dump.dump_all(response)
print(data.decode('utf-8'))

这将在重定向历史记录中转储每对请求和响应。上面代码生成的请求如下所示:

< POST / HTTP/1.1
< Host: google.com
< Connection: keep-alive
< Accept-Encoding: gzip, deflate
< Accept: */*
< User-Agent: python-requests/2.13.0
< Content-Length: 7
< Content-Type: application/x-www-form-urlencoded
< 
< foo=bar

确保网址,所有标题和请求正文完全匹配。