2013-03-11 58 views
-1

我在通過C#API中的WebClient發送POST請求時遇到問題。 POST請求是:通過具有邊界的WebClient發送POST請求

POST http://aaa.com/login.php HTTP/1.1 
Host: www.aaa.com 
Connection: keep-alive 
Content-Length: 346 
Cache-Control: max-age=0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Origin: http://www.aaa.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryK0J3zdRYpjgldAFy 
Referer: http://www.turbotrafficbooster.com/ 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: bg-BG,bg;q=0.8 
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3 
Cookie: PHPSESSID=b703525853495c9257b3f3ec579c937a 

------WebKitFormBoundaryK0J3zdRYpjgldAFy 
Content-Disposition: form-data; name="navaction" 

login 
------WebKitFormBoundaryK0J3zdRYpjgldAFy 
Content-Disposition: form-data; name="UserID" 

test 
------WebKitFormBoundaryK0J3zdRYpjgldAFy 
Content-Disposition: form-data; name="Password" 

test 
------WebKitFormBoundaryK0J3zdRYpjgldAFy-- 

我知道該怎麼樣用戶代理等的頭做的,但我有邊界的問題。我不知道如何把它們和在哪裏做..

+0

你用什麼代碼來構建這個請求? – 2013-03-11 20:31:28

+0

你甚至需要添加邊界頭元素嗎?你是否複製並粘貼別人的標題?看看這篇文章:http://stackoverflow.com/questions/2305218/what-is-the-boundary-parameter-in-an-http-multi-part-post-request – atconway 2013-03-11 20:37:25

+0

使用提琴手,並執行相同的在IE中採取行動。您應該能夠看到如何從跟蹤中提交表單數據並複製格式。 – JamieSee 2013-03-11 20:40:58

回答

0

請參閱this answer和鏈接的規範here中的示例。例如:

Content-Type: multipart/form-data; boundary=AaB03x 

    --AaB03x 
    Content-Disposition: form-data; name="submit-name" 

    Larry 
    --AaB03x 

WebKitFormBoundaryK0J3zdRYpjgldAFy只是一個約定。如果你願意的話,它可以是MyFoobaredBoundry,只要你聲明並適當地關閉它。不同的瀏覽器使用不同的字符串,因此接收端沒有什麼區別。

但是,這可能不是你必須自己做的事情...