Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c将二进制数据发布到web客户端#_C#_Webclient_Content Type - Fatal编程技术网

C# 使用c将二进制数据发布到web客户端#

C# 使用c将二进制数据发布到web客户端#,c#,webclient,content-type,C#,Webclient,Content Type,我在做一个c#项目。我必须调用外部web服务,将文件作为二进制数据发布,并读取其响应。 下面是我的代码 var webClient = new WebClient(); string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo); webClient.Headers.Add("Content-Type", "multipart/

我在做一个c#项目。我必须调用外部web服务,将文件作为二进制数据发布,并读取其响应。 下面是我的代码

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);
我已将内容类型传递为“应用程序/八位字节流”。
我肯定遗漏了一些东西,但无法找到它。

您是否尝试过简单的
WebClient.UploadFile
?看


(作为子孙后代的答案发布)

您最好使用
HttpClient
而不是
WebClient
。它将为您处理这些棘手的问题。您是否尝试过简单地
WebClient.UploadFile
?看到@Dillanm你是说我不需要在代码中指定内容类型吗?@Dillanm Woah!成功了。多亏了迪兰姆,有时候我们在处理一项复杂的任务时忘记了事情可以很简单。非常感谢,你救了我的命:)@Neha不抱歉;您仍然需要指定内容类型,但请尝试使用
UploadFile
代替
UploadData