首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法向multipart/form-data添加"boundary“

无法向multipart/form-data添加"boundary“
EN

Stack Overflow用户
提问于 2018-07-24 20:22:23
回答 1查看 74关注 0票数 0

我正在尝试将一个多部分请求发布到一个web api。我的控制器看起来像这样:

代码语言:javascript
复制
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中使用它。如果有人能告诉我这里哪里出了问题,或者如果这不是发布的正确方式,请给我一个如何做的例子,这将是非常有帮助的。

EN

回答 1

Stack Overflow用户

发布于 2019-07-11 04:25:06

不确定这是否会完全回答你的问题,但我正在处理这个问题,并找到了两种方法来做到这一点……

方法一..。

代码语言:javascript
复制
myHttpRequestMessage.Content.Headers.Remove("Content-Type");                    
myHttpRequestMessage.Content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");

方法二..。

代码语言:javascript
复制
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"));

然而,话虽如此,在我的特定实例中,与您的并不完全匹配,解决方案是...

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51498535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档