HttpContent边界双引号

问题描述 投票:6回答:1

我有这个代码示例作为另一个问题(Send a file via HTTP POST with C#)的答案发布。除了一个问题,它工作正常。它用双引号括起HTTP头中的边界:

多部分/格式的数据;边界= “04982073-787d-414B-a0d2-8e8a1137e145”

这窒息了我试图打电话的网络服务。浏览器没有那些双引号。我需要一些方法告诉.NET让他们离开。

private System.IO.Stream Upload(string actionUrl, string paramString, Stream paramFileStream, byte [] paramFileBytes)
{
    HttpContent stringContent = new StringContent(paramString);
    HttpContent fileStreamContent = new StreamContent(paramFileStream);
    HttpContent bytesContent = new ByteArrayContent(paramFileBytes);
    using (var client = new HttpClient())
    using (var formData = new MultipartFormDataContent())
    {
        formData.Add(stringContent, "param1", "param1");
        formData.Add(fileStreamContent, "file1", "file1");
        formData.Add(bytesContent, "file2", "file2");
        var response = client.PostAsync(actionUrl, formData).Result;
        if (!response.IsSuccessStatusCode)
        {
            return null;
        }
        return response.Content.ReadAsStreamAsync().Result;
    }
}
c# boundary httpcontent
1个回答
2
投票

您可以使用以下代码从边界中删除引号:

var boundary = formData.Headers.ContentType.Parameters.First(o => o.Name == "boundary"); 
boundary.Value = boundary.Value.Replace("\"", String.Empty);    
© www.soinside.com 2019 - 2024. All rights reserved.