C# 不能加上「;“边界”;到多部分/表单数据
我正在尝试向web api发布一个多部分请求。我的控制器如下所示:C# 不能加上「;“边界”;到多部分/表单数据,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我正在尝试向web api发布一个多部分请求。我的控制器如下所示: using (var client = new HttpClient()) { var obj = JsonConvert.SerializeObject( model, Formatting.None, new HttpPostedFileConverter()); var boundary = "----" + DateTime.Now.Ti
using (var client = new HttpClient())
{
var obj = JsonConvert.SerializeObject(
model,
Formatting.None,
new HttpPostedFileConverter());
var boundary = "----" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
var contentType = new StringBuilder("multipart/form-data; boundary=")
.Append(boundary);
var httpContent = new StringContent(
obj,
Encoding.UTF8,
contentType.ToString()); //error shows here
var uri = new StringBuilder(_domain)
.Append("/api/email/send");
var response = await client.PostAsync(uri.ToString(), httpContent);
....
....
}
当我尝试添加contentType
时,就会出现问题。它显示值的多部分/表单数据格式的错误;boundary=--***'无效。
模型
包含如下数据:附件
类型为列表
。我没有使用MultipartFormDataContent
,因为我的模型中上传的文件是json格式的,我不知道如何使用MultipartFormDataContent
。如果有人能告诉我这里出了什么问题,或者这不是正确的发帖方式,那么请给我举个例子。不确定这是否能完全回答你的问题,但我正在处理这个问题,并找到了两种方法
方法一
myHttpRequestMessage.Content.Headers.Remove("Content-Type");
myHttpRequestMessage.Content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
方法二
myHttpRequestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data");
myHttpRequestMessage.Content.Headers.ContentType.Parameters.Add(new System.Net.Http.Headers.NameValueHeaderValue("boundary", "----WebKitFormBoundary7MA4YWxkTrZu0gW"));
然而,尽管如此,在我的特殊情况下,与你的不完全匹配,解决方案是
System.Net.Http.MultipartFormDataContent myMultipartFormDataContent = new System.Net.Http.MultipartFormDataContent("------WebKitFormBoundary7MA4YWxkTrZu0gW");
myMultipartFormDataContent.Add(new System.Net.Http.StringContent(myTextValue), "users_file", "userAccounts.csv");
myHttpRequestMessage.Content = myMultipartFormDataContent;