C# 向URI发送POST参数

C# 向URI发送POST参数,c#,windows-runtime,windows-phone-8.1,C#,Windows Runtime,Windows Phone 8.1,我找不到有关如何使用Windows.Web.Http.HttpClient执行此操作的示例。。。 我需要向我的Web服务器发送一些用户生成的数据,这些数据通过GET发送是不安全的。这不是XML,它们只是一些夫妻的名字/值(因此我可以用php中的$\u POST[]阅读它们)这样做可以实现(我还没有测试): HttpClient-HttpClient=new-HttpClient(); httpClient.BaseAddress=新Uri(“http://application:9000/");

我找不到有关如何使用Windows.Web.Http.HttpClient执行此操作的示例。。。
我需要向我的Web服务器发送一些用户生成的数据,这些数据通过GET发送是不安全的。这不是XML,它们只是一些夫妻的名字/值(因此我可以用php中的$\u POST[]阅读它们)

这样做可以实现(我还没有测试):

HttpClient-HttpClient=new-HttpClient();
httpClient.BaseAddress=新Uri(“http://application:9000/");
FormUrlEncodedContent formContent=新FormUrlEncodedContent(新[]{
新的KeyValuePair(“key1”、“value”),
新的KeyValuePair(“key2”,“value”)
});
var response=httpClient.PostAsync(“service.php”,formContent);
if(response.Result.IsSuccessStatusCode){
字符串内容=response.Result.content.ReadAsStringAsync().Result;
}
注意


一个非常有趣的例子,关于如何使用HttpClient类在POST请求中发送json数据,可以找到,虽然您不询问如何发送json,但示例是per si,很有趣,可能会让您进一步了解如何使用HttpClient发送POST请求。

以POST而不是GET方式发送数据不会增加太多安全性。不要使用
var result=client.PostAsync(…).result。这可能会阻塞线程,请改用
var result=wait client.PostAsync(…)
另外,我认为您正在混合使用
System.Net.Http.HttpClient
Windows.Web.Http.HttpClient
。在第二个中没有
基地址
,并且
PostAsync
接收一个
Uri
;)
    HttpClient httpClient = new HttpClient();
    httpClient.BaseAddress = new Uri("http://application:9000/");

    FormUrlEncodedContent formContent = new FormUrlEncodedContent(new[] {
       new KeyValuePair<string, string>("key1", "value"),
       new KeyValuePair<string, string>("key2", "value")
    });

    var response = httpClient.PostAsync("service.php", formContent);

    if (response.Result.IsSuccessStatusCode) {
        string content = response.Result.Content.ReadAsStringAsync().Result;
    }