C# 将原始字节数组发送到网站

标签 c# http web stream byte

我需要向网站或网络服务器发送 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/

相关文章:

ios - Objective-C 如何使用 header 中的嵌套字典将数据发送到 Http Post 请求

ruby-on-rails - 将字段名称作为参数传递给自定义验证方法 Rails 4

android - 背景附件:固定不能在 android/mobile 上工作

python - 使用Python更新HTML文件中4个值的值

c# - 发布编码 C# 结构以调用 C .DLL

c# - 有没有办法强制在其他列之前输入 WPF DataGrid 列?

c# - 如何在 C# Winform 应用程序中将复选框添加到 ListView 列标题?

http - 使用ffmpeg库通过http协议(protocol)编码视频流

c# - 如何让 HttpHeaders.TryGetValues() 返回多个值?

c# - MVC Visual Studio 在模型文件夹中添加 .dbml 文件