簡體   English   中英

無法將“邊界”添加到多部分/表單數據

[英]Can not add “boundary” to multipart/form-data

我正在嘗試將分段請求發布到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. The format of value 'multipart/form-data; boundary=---***' is invalid.

model包含如下數據:
在此處輸入圖片說明

Attachments類型為List<HttpPostedFileBase> 我沒有使用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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM