【发布时间】:2014-06-06 02:14:53
【问题描述】:
我需要使用 WP8 应用程序中的 post 方法将一些参数发送到 php 服务器,并以 json 格式获取响应。我已经尝试了在 stackoverflow 和其他网站上找到的所有内容,但仍然无法。
我想出的最后一段代码是:
public static async void GetData(string url, string data)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync(new Uri(url), new StringContent(data));
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
MessageBox.Show(responseBody); // just showing the response for now
}
它显示来自服务器的消息(这是一个错误,说明缺少某些字段)它实际上与服务器通信,但问题在于发送数据。我将上述方法称为:
GetData("http_address_here", "?action=REGISTER&email=asc@fsdf.com&password=54561wefwe&firstname=sdfsdf&lastname=sdfsdf&picture=10");
但是我看到了一个用 xml 发送数据的例子。错误可能与调用方法有关。看了几十个示例代码并尝试了一切,我真的很困惑。任何帮助表示赞赏。
【问题讨论】:
-
您不是在发布数据,而是在执行 GET,这可能会对您有所帮助:stackoverflow.com/questions/10304863/…
-
提供给我开发应用程序的文档说:“所有参数都通过 POST 方法传递”。至少我尝试过发布。但你是什么意思?我是在上面的代码中做 GET 还是我需要的是 GET?
-
当您在 URL 中传递参数时,那些是 GET 参数,POST 参数将写入请求的主体中。看前面的链接,有一个如何POST参数的例子。
-
谢谢。我尝试了代码: var client = new HttpClient(); var postData = new List
>(); postData.Add(new KeyValuePair ("Name", "test")); postData.Add(new KeyValuePair ("Price", "100")); HttpContent 内容 = 新 FormUrlEncodedContent(postData); client.PostAsync("localhost:44268/api/test", content).ContinueWith( (postTask) => { postTask.Result.EnsureSuccessStatusCode(); });有用。我怎样才能得到响应(显示在屏幕上。) -
你可以从字符串 responseBodyAsText = await postTask.Result.Content.ReadAsStringAsync(); 得到响应
标签: c# windows-phone-8 http-post