我通过执行以下代码使用Python获得http响应:
conn = httplib.HTTPSConnection('westus.api.cognitive.microsoft.com')
conn.request("GET", "/something/somethig")
response = conn.getresponse()
#data = response.read()
data =json.load(response)
print(data)
结果显示了API结果列表。
但它们与执行的和我手动访问westus.api.cognitive.microsoft.com/something/something
网站时不同。
有人可以告诉我这里有什么问题吗?
答案 0 :(得分:0)
脚本中的请求与浏览器中的请求之间存在许多不同之处。首先,您的脚本不会从页面执行任何关联的JavaScript。其次,http请求的标头包含请求客户端的详细信息。
例如,对于REST接口,服务器可以将最新的JSON返回给应用程序请求,并返回格式化页面以用于浏览器请求。
在Chrome中,您可以使用" ..." - >"更多工具" - >"开发人员工具"打开开发人员工具,以及打开后,您可以打开所有请求并查看标题:
Firefox中有一个类似的功能来查看标题。点击汉堡包 - >"开发人员" - >" Web控制台"。在" Net"您可以过滤请求。单击请求以查看详细信息。
对于POST命令,还要查看请求的正文。
最后,上周,我试图用Java自动化POST命令,这样做有些困难。一位同事能够使用curl
命令进行调用,这给了我关于关键参数的足够线索。因此,我建议尝试使用curl
来帮助区分关键参数和意外参数,或者至少从另一个角度来看问题。