【发布时间】:2018-02-02 07:06:20
【问题描述】:
背景
我已经使用pypiwin32 成功发出了一些 HTTP GET 请求
import pythoncom
import win32com.client
pythoncom.CoInitialize()
h = win32com.client.Dispatch('WinHTTP.WinHTTPRequest.5.1')
h.SetAutoLogonPolicy(0) # log in automatically
h.Open('GET', url, True)
h.Send()
然后从h.status和h.responseText获取响应状态和文本
问题
pywin32(或者我应该说pypiwin32)似乎没有官方文档,Microsoft WinHttpRequest object docs 只有 C++ 示例。
问题
如何使用 pywin32 中的 win32com.client 发出带有特定负载和标头的 HTTP POST 请求?假设我要添加的 HTTP 请求标头是
Referer: http://example.com/analysis.aspx?ID=527776455
Cookie: ASP.NET_SessionId=51jrf2r
我要发布的有效负载是
{"Id":"8974552","Action":"Analysis"}
【问题讨论】:
-
不会有更好的方法吗?因为跨平台和出色的文档。
-
我确实需要
h.SetAutoLogonPolicy(0)提供的自动登录来进行Microsoft NTLM 身份验证。如果requests可以做到这一点,我很乐意迁移。我也尝试过requests-ntml,但如果使用它,您似乎必须提供凭据。
标签: python pywin32 winhttprequest