Я хотел бы отправить значение и файл POST из приложения UWP (C #) в API, созданный в PHP, но, похоже, файл не может быть отправлен.
if($_FILES['param2'])
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.
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?
Спасибо.
Задача ещё не решена.
Других решений пока нет …