【发布时间】:2013-09-06 20:56:50
【问题描述】:
Windows phone 8 中的 HttpWebRequest
我正在使用 c#/xaml 开发一个 windows phone 8 应用程序。我遇到了 httpwebrequest 类的一些问题。我想使用 post 方法从服务器下载数据。但是 httpwebrequest 没有按预期工作。当我随后尝试调用 web 服务时,它返回错误(远程服务器返回错误:NotFound)。可能是什么原因?。请帮助...以下是我的代码。
string response = "";
httpwebrequest = WebRequest.Create(new Uri(serviceurl)) as HttpWebRequest;
httpwebrequest.Method = "POST";
httpwebrequest.ContentType = "application/json";
byte[] data = Serialization.SerializeData(request);
using (var requestStream = await Task<Stream>.Factory.FromAsync(httpwebrequest.BeginGetRequestStream, httpwebrequest.EndGetRequestStream, null))
{
await requestStream.WriteAsync(data, 0, data.Length);
}
response = await httpRequest(httpwebrequest);
var result = Serialization.Deserialize<T>(response);
return result;
}
public async Task<string> httpRequest(HttpWebRequest request)
{
try
{
string received;
using (var response = (HttpWebResponse)(await Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null)))
{
using (var responseStream = response.GetResponseStream())
{
using (var sr = new StreamReader(responseStream))
{
received = await sr.ReadToEndAsync();
}
}
response.Close();
}
return received;
}
catch(Exception ex)
{
return "";
}
}
【问题讨论】:
-
这基本上意味着 HTTP 404。您是否检查过您的
serviceurl是否正确?在您的浏览器中尝试,它不应该给您 404 -
serviceurl 是正确的。仍然出现相同的错误。我们如何处理多个 Web 服务请求?我想在我的应用程序中调用多个请求。
-
嗯,问题还是一样。您可能无法访问服务器。你是在手机上还是在模拟器上试试?您可以尝试在其中一个上打开浏览器并输入 URL。
-
我正在设备上尝试这个(lumia 920 和 lumia 620)。模拟器和设备都有同样的问题。
标签: windows-phone-8 windows-phone