通过带有边界的WebClient发送POST请求

时间:2013-03-11 20:28:44

标签: c# .net post webkit webclient

我在使用C#API中的WebClient发送POST请求时遇到问题。 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--

我知道如何处理用户代理等标题,但我的边界有问题。我不知道如何把它们放在哪里以及它在哪里......

1 个答案:

答案 0 :(得分:0)

请参阅this answer以及链接规范here中的示例。例如:

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

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

  Larry   
  --AaB03x

WebKitFormBoundaryK0J3zdRYpjgldAFy只是一个惯例。如果您愿意,它可以是MyFoobaredBoundry,前提是您正确地声明并关闭它。不同的浏览器使用不同的字符串,因此接收端的任何内容都不应该因此而区分。

然而,这可能不是你必须自己做的事情......