我需要向网站或网络服务器发送 POST 请求,但它必须是原始格式(如 fiddler 十六进制 View 中所示),然后得到响应。这是一个字节数组,我已经拥有(并且始终相同)带有“POST ...”,带有 header 、cookie、值,一切都已设置。
我希望像 SendRawBytes(url, bytes);
这样的函数只发送“bytes”变量。
我已经尝试过 WebClient.UploadData(url, data)
但它将 POST、HOST、Content-Length 和 Expect 添加到请求中,结果如下:
POST http://mail.mymail.com/index.html/?_task=login HTTP/1.1
Host: mail.mymail.com
Content-Length: 1000
Expect: 100-continue
POST http://mail.mymail.com/index.html/?_task=login HTTP/1.1
Host: mail.mymail.com
Connection: keep-alive
Content-Length: 148
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://mail.mymail.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://mail.mymail.com/index.html/
Accept-Encoding: gzip, deflate
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: __utma=212529476.250438617.1448317607.1448937588.1448974476.6; __utmc=212529476; __utmz=212529476.1448317607.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
_task=login_url=&_user=testuser&_pass=01234
任何事情都会有很大帮助!
提前谢谢你。
最佳答案
如果你想发送原始字节,你不能使用 HTTP 库。您需要打开一个 TcpClient
并手动发送字节。
关于C# 将原始字节数组发送到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045163/