簡體   English   中英

以編程方式發布表單並沒有執行我的瀏覽器正在執行的操作。 為什么?

[英]Programatically POST'ing a form is not doing what my browser is doing. Why?

我試圖以編程方式在我不擁有的網站上提交表單。 我正在嘗試模擬使用Web瀏覽器手動進行的操作。 我正在使用HTTP庫發出HTTP POST請求。

出於某種原因,與通過Web瀏覽器手動提交表單相比,以編程方式提交表單時,我不知道會得到不同的結果(錯誤,不同的響應……)。

那怎么可能?我該如何發現自己犯了什么錯誤?

這個問題是故意與語言和圖書館無關的。 我要求調試此類問題的一般步驟。

此問題的所有實例都是等效的。 以下是解決所有問題的方法:

您要發布到的網站無法區分其他客戶。 它無法確定您使用的是Web瀏覽器還是HTTP庫。 因此, 只有您發送的內容才是服務器決定如何做出反應的關鍵

如果您觀察到來自服務器的不同響應,則意味着您正在發送不同的請求。

您可能必須正確發送的一些重要事項:

  • 網址
  • 動詞( GETPOST
  • 標頭: HostUser-AgentContent-Length
  • Cookies( CookieSet-Cookie標頭)
  • 請求主體

使用像Fiddler這樣的HTTP嗅探器來捕獲您正在以編程方式發送的內容以及瀏覽器正在發送的內容。 比較差異要求。 逐一消除差異,以找出導致問題的原因之一。 您可以將HTTP請求拖到Composer窗口中,以進行修改和重新發出。

如果您確實消除了手動和程序化請求之間的所有差異,那么仍然不可能獲得不同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM