我正在尝试将文件和一些键值对上传到服务器。
服务器的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\"");
但没有运气
答案 0 :(得分:0)
发现问题出在服务器端