我正在尝试将一个多部分请求发布到一个web api。我的控制器看起来像这样:
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时出现问题。它显示了一个错误The format of value 'multipart/form-data; boundary=---***' is invalid.
model包含如下数据:

Attachments类型为List<HttpPostedFileBase>。我没有使用MultipartFormDataContent,因为我的模型中有json格式的上传文件,我不知道如何在MultipartFormDataContent中使用它。如果有人能告诉我这里哪里出了问题,或者如果这不是发布的正确方式,请给我一个如何做的例子,这将是非常有帮助的。
发布于 2019-07-11 04:25:06
不确定这是否会完全回答你的问题,但我正在处理这个问题,并找到了两种方法来做到这一点……
方法一..。
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;https://stackoverflow.com/questions/51498535
复制相似问题