所有,我在尝试使用https调用请求进入gitub api时遇到了一些奇怪的行为:
@GET
@Path("/{pathPrefix}/{file}")
public Response getImage(@PathParam("pathPrefix") String pathPrefix,
@PathParam("file") String file
输出看起来像打印二进制文件(这里没有粘贴乱码输出的点)。
等效的cURL调用(print(requests.get('https://api.github.com/gists/bbc56a82f359eccd4bd6').text)
)会产生我期待的JSON响应。
所有这一切都是在修复了一个pip问题(InsecurePlatformWarning)之后开始的,其中安装了一些与安全相关的软件包。 python< 2.7.9的用户需要此修复程序。我在2.7.3上,因为在某些网站上建议不要触摸debian上的python构建(针对依赖性破坏问题)。
请注意我所遇到的问题,例如github3py python API包装器等。
升级后是否有其他人看到了请求问题?任何修复?
答案 0 :(得分:0)
此URL明显响应不同,具体取决于用户代理。我只需添加-A moo/1
即可使curl命令行响应不同。
通过使用类似用户代理的卷曲,您可以通过此请求获得类似卷曲的响应。
甚至更好:只需询问github或阅读他们的API。
答案 1 :(得分:0)
我在这里没有看到这种行为:
>>> import requests
>>> print(requests.get('https://api.github.com/gists/bbc56a82f359eccd4bd6').text)
返回JSON字符串。您可以通过将请求调用的User-Agent更改为cURL
的用户代理来尝试进一步调试:
headers = {
'User-Agent': 'curl/7.38.0',
}
url = 'https://api.github.com/gists/bbc56a82f359eccd4bd6'
response = requests.get(url, headers=headers)