我想将UWP应用程序(C#)中的值和文件POST发送到用PHP创建的API,但似乎无法发送该文件。
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();
}
在GoogleChrome的高级REST客户端中,它成功了
在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上发送?
谢谢。