c # — POST передача файла завершается с UWP

Беда

Я хотел бы отправить значение и файл POST из приложения UWP (C #) в API, созданный в PHP, но, похоже, файл не может быть отправлен.

  • param1 является StringValue.
  • param2 — это UploadFile.

Выдержка из sample.php

if($_FILES['param2'])

UWP (Ошибка. $ _FILES [‘param2’] false)

private async Task PostSample()
{
const string POST_URL = "http://xxx.xxx.xxx.xxx/api/sample.php";

var multi = new HttpMultipartFormDataContent();

var param1 = new HttpStringContent("foo");
multi.Add(param1, "param1");

byte[] values = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
var param2 = new HttpStreamContent(new MemoryStream(values).AsInputStream());
param2.Headers.ContentDisposition = new Windows.Web.Http.Headers.HttpContentDispositionHeaderValue("form-data")
{
Name = "param2",
FileName = "piyo.dat"};
multi.Add(param2);

var client = new HttpClient();
var res = await client.PostAsync(new Uri(POST_URL), multi);

var diag = new MessageDialog(res.ToString());
await diag.ShowAsync();
}

Что я пробовал

Внешний инструмент

В расширенном клиенте REST от GoogleChrome это удалось

Windows Forms (успешно)

Это удалось на Windows Forms.

private async Task PostSample()
{
const string POST_URL = "http://xxx.xxx.xxx.xxx/api/sample.php";

var multi = new MultipartFormDataContent();

var param1 = new StringContent("foo");
multi.Add(param1, "param1");

byte[] values = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
var param2 = new StreamContent(new MemoryStream(values));
param2.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data")
{
Name = "param2",
FileName = "piyo.dat"};
multi.Add(param2);

var client = new HttpClient();
var res = await client.PostAsync(POST_URL, multi);
MessageBox.Show(res.ToString());
}

Угадай

Мой код UWP неверен или не может быть отправлен по UWP?

Спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]