Я пытаюсь загрузить файл и несколько пар ключ-значение на сервер.
ИТ-специалист сервера говорит мне: «Когда наш сервер получает запрос, файл отображается великолепно, но ни одна из данных в ваших парах ключ-значение не отображается в запросе (так как он анализируетсяASP.Net). Я еще точно не определился, что происходит с этим, но я подозреваю, что он похоронен, находясь в объекте dataContent на один уровень глубже в объекте содержимого. "
Код, который я использую ниже.Как я могу переместить пары ключ-значение «на уровень»?К сожалению, я не очень разбираюсь в работе с сетями.
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\"");
, но не повезло