2015-07-20 47 views
1

我試圖發送遠程post操作到網站,以特定的時間間隔從一個狀態自動更改爲另一個狀態,但是,我無法解密HTTP標題信息以獲取所需的內容結果。每次我發佈帖子,網站都不接受,所以顯然我已經錯誤地解析了帖子。從HTTP標題複製Post操作

我捕捉的工作HTTP頭信息如下:

http://URLXXX.com/p/9998812/update_availability 

POST /p/9998812/update_availability HTTP/1.1 
Host: URLXXX.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Referer: http://URLXXX.com/p/9998812/s/fwkA-irHT-2kMfS 
Cookie: 
Connection: keep-alive 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 138 
utf8=%E2%9C%93&_method=put&authenticity_token=xMiaIdT%2Fnw%2FPbsYq%2BmVaLFnH362HIvIdXQQX3D%2F4uEo%3D&product%5Bstate%5D=active&commit=Save 
HTTP/1.1 302 Found 
Server: nginx/1.8.0 
Date: Mon, 20 Jul 2015 06:00:16 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 93 
Connection: keep-alive 
Status: 302 Found 
Location: http://URLXXX.com/p/9998812 
Set-Cookie: makara-force-master=master; expires=Mon, 20-Jul-2015 06:00:21 GMT 
Set-Cookie: csrf-param=authenticity_token; path=/ 
Set-Cookie: _ssn=c8a813425bc34cd850277f5745ff957e; domain=.URLXXX.com; path=/; expires=Mon, 20-Jul-2015 06:30:16 GMT; HttpOnly 
X-UA-Compatible: IE=Edge,chrome=1 
Cache-Control: no-cache 
X-Request-Id: 3bcc2b5f06cdd5215a613e01726559d9 
X-Runtime: 0.160565 
X-Served-By: app102.c1.prod 
---------------------------------------------------------- 
http://URLXXX.com/p/9998812 

GET /p/9998812 HTTP/1.1 
Host: URLXXX.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Referer: http://URLXXX.com/p/9998812/s/fwkA-irHT-2kMfS 
Cookie: 
Connection: keep-alive 

HTTP/1.1 301 Moved Permanently 
Server: nginx/1.8.0 
Date: Mon, 20 Jul 2015 06:00:16 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 127 
Connection: keep-alive 
Status: 301 Moved Permanently 
Vary: User-Agent 
Location: http://URLXXX.com/p/9998812/productdetail 
X-UA-Compatible: IE=Edge,chrome=1 
Cache-Control: no-cache 
Set-Cookie: _ssn=c8a813425bc34cd850277f5745ff957e; domain=.URLXXX.com; path=/; expires=Mon, 20-Jul-2015 06:30:16 GMT; HttpOnly 
X-Request-Id: 8b68dac5cb24355d19aa46c9ac22df61 
X-Runtime: 0.020239 
X-Served-By: app103.c1.prod 
---------------------------------------------------------- 
http://URLXXX.com/p/9998812/productdetail 

GET /p/9998812/productdetail HTTP/1.1 
Host: URLXXX.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Referer: http://URLXXX.com/p/9998812/s/fwkA-irHT-2kMfS 
Cookie: 
Connection: keep-alive 

HTTP/1.1 200 OK 
Server: nginx/1.8.0 
Date: Mon, 20 Jul 2015 06:00:17 GMT 
Content-Type: text/html; charset=utf-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Status: 200 OK 
Vary: User-Agent 
X-UA-Compatible: IE=Edge,chrome=1 
Etag: W/"2e41a435d3ea497f97654949f587fb46" 
Cache-Control: max-age=0, private, must-revalidate 
Set-Cookie: csrf-param=authenticity_token; path=/ 
Set-Cookie: _ssn=c8a813425bc34cd850277f5745ff957e; domain=.URLXXX.com; path=/; expires=Mon, 20-Jul-2015 06:30:17 GMT; HttpOnly 
X-Request-Id: 7334d318bb69997260fd1b24f2d290de 
X-Runtime: 0.369774 
X-Served-By: app101.c1.prod 
Content-Encoding: gzip 
---------------------------------------------------------- 

任何幫助,有人能向我提供將是巨大的。我真的只是想了解如何將相同的參數傳遞給站點,以便我可以複製該函數。

感謝

回答

0

您需要發送請求行,頭,一個空行,然後將數據(在POST請求的情況下)。對於上面的例子,這應該看起來像這樣:

POST /p/9998812/update_availability HTTP/1.1 
Host: URLXXX.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101  Firefox/39.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Referer: http://URLXXX.com/p/9998812/s/fwkA-irHT-2kMfS 
Cookie: 
Connection: keep-alive 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 138 

utf8=%E2%9C%93&_method=put&authenticity_token=xMiaIdT%2Fnw%2FPbsYq%2BmVaLFnH362HIvIdXQQX3D%2F4uEo%3D&product%5Bstate%5D=active&commit=Save 

你沒有說你正在使用什麼來向服務器發送請求。有幾種功能非常強大的工具(比如用於Unix/Linux系統的curl)以及幾乎所有可用於製作HTTP請求的語言的很多非常強大和友好的庫(例如用於Python的requests)。這些爲你處理協議的細節做了很多工作。

如果你正在編寫自己的HTTP客戶端,使用低級網絡庫,你應該認真考慮使用這些工具之一。如果您有充分的理由不這樣做,您應該查看指定HTTP的RFC:http://www.w3.org/Protocols/rfc2616/rfc2616.html或HTTP上的綜合資源。

+0

感謝您的這一點,雖然數據就是我所苦苦掙扎的。我認爲這是utf8 = ....東西? 我目前使用.net應用程序來完成這些信息。基本上與此處相同的代碼 - http://stackoverflow.com/questions/8222092/sending-http-post-with-system-net-webclient – Glen