Post 使用 C# 将二进制数据发送到 Web 客户端
Post binary data to web client using c#
我正在开发一个 C# 项目。我必须调用外部 Web 服务和 post 文件作为二进制数据并读取其响应。
下面是我的代码
var webClient = new WebClient();
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
var fileData = webClient.Encoding.GetString(file);
var package = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n{3}\r\n--{0}--\r\n", boundary, filename, contentType, fileData);
var nfile = webClient.Encoding.GetBytes(package);
byte[] resp = webClient.UploadData(url, "POST", nfile);
我已将内容类型传递为 "application/octet-stream"。
我肯定遗漏了一些东西,但无法弄清楚。
你试过简单的WebClient.UploadFile
吗?参见 MSDN
(作为后代的答案发布)
我正在开发一个 C# 项目。我必须调用外部 Web 服务和 post 文件作为二进制数据并读取其响应。 下面是我的代码
var webClient = new WebClient();
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
var fileData = webClient.Encoding.GetString(file);
var package = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n{3}\r\n--{0}--\r\n", boundary, filename, contentType, fileData);
var nfile = webClient.Encoding.GetBytes(package);
byte[] resp = webClient.UploadData(url, "POST", nfile);
我已将内容类型传递为 "application/octet-stream"。 我肯定遗漏了一些东西,但无法弄清楚。
你试过简单的WebClient.UploadFile
吗?参见 MSDN
(作为后代的答案发布)