我正在尝试以编程方式在我不拥有的网站上提交表单。我正在尝试模拟我手动使用网络浏览器做什么。我正在使用HTTP库发出HTTP POST请求。
由于我不知道的原因,当我以编程方式提交表单而不是Web浏览器中的手动提交时,我得到的结果不同(错误,响应不同......)。
怎么可能,我怎么能弄清楚我犯了什么错误?
这个问题是故意的语言和图书馆不可知的。我要求调试此类问题的一般程序。
答案 0 :(得分:4)
此问题的所有实例都是等效的。以下是解决所有问题的方法:
您发布的网站无法区分不同的客户。它无法确定您使用的是Web浏览器还是HTTP库。因此,只发送的内容对服务器决定如何做出反应非常重要。
如果您发现服务器的响应不同,则表示您发送了不同的请求。
您可能需要正确发送的一些重要事项:
GET
或POST
)Host
,User-Agent
,Content-Length
Cookie
和Set-Cookie
标题)使用像Fiddler这样的HTTP嗅探器捕获您以编程方式发送的内容以及您的浏览器发送的内容。比较差异请求。逐个消除差异,看看哪一个引起了问题。您可以将HTTP请求拖到Composer窗口中,以便能够修改并重新发出它。
如果你真的已经消除了手册和程序化请求之间的所有差异,那么仍然无法获得不同的结果。