将键值对添加到MultipartFormDataContent

时间:2018-10-26 20:39:18

标签: c# multipartform-data

我正在尝试将文件和一些键值对上传到服务器。

服务器的IT专家告诉我:“当我们的服务器接收到请求时,文件显示的很好,但是键值对中的任何数据都没有显示在请求中(由ASP.Net解析) )。我尚未确定到底发生了什么,但是我怀疑它被埋在dataContent对象中更深了,它位于content对象的更深一层。”

我正在使用的代码如下。如何将键值对“上移”?不幸的是,我对网络并不那么了解。

using (var content = new MultipartFormDataContent())
{
    var dataContent = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("Key1", "Value1"),
        new KeyValuePair<string, string>("Key2", "Value2")
    });
    content.Add(dataContent);

    using (var fileStream = File.OpenRead(filePathAndName))
    using (var fileStreamContent = new StreamContent(fileStream))
    {
        fileStreamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
        {
            Name = "File",
            FileName = Path.GetFileName(filePathAndName)
        };
        fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        content.Add(fileStreamContent);
        using (var response = await client.PostAsync("api/datasets", content))
        {
            if (response.IsSuccessStatusCode)
            {
                Debug.WriteLine("Upload Success");
            }
            else
            {
                Debug.WriteLine("Upload Failed");
                Debug.WriteLine("Response : " + response);
            }
        }
    }
}

我也没有尝试使用FormUrlEncodedContent,

content.Add(new StringContent("Value1"), "\"Key1\"");
content.Add(new StringContent("Value2"), "\"Key2\"");

但没有运气

1 个答案:

答案 0 :(得分:0)

发现问题出在服务器端