【发布时间】:2011-12-03 09:46:56
【问题描述】:
我正在尝试使用 Windows Phone 7.1 SDK (Mango) 使用 WP7 阅读网页。我有一个 URL,我想阅读它,然后在上面执行一些功能。我尝试使用 HttpWebRequest 和 WebClient 但未能成功获得响应。有什么建议么?更新:在我使用的代码下面找到。问题是我只能读取页面的部分响应。
private void btnGo_Click(object sender, RoutedEventArgs e)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txtURL.Text); //txtURL loads URL
var result = (IAsyncResult)request.BeginGetResponse(ResponseCallback, request);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private static void ResponseCallback(IAsyncResult result)
{
try
{
var request = (HttpWebRequest)result.AsyncState;
var response = request.EndGetResponse(result);
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
var contents = reader.ReadToEnd();
textToBeDisplayed = contents;
if (textToBeDisplayed != "")
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
System.Diagnostics.Debug.WriteLine(textToBeDisplayed);
});
}
}
}
catch (Exception ex)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(ex.Message);
});
}
}
【问题讨论】:
-
你能展示你用来检索数据的代码吗?您是否收到任何异常或 HTTP 状态代码?如果是,是哪一个。
-
没有任何例外。我只从我提供的任何 URL 中得到部分响应。
-
你有试过的网址吗?我已经复制了您的代码(仅从您的私有方法中删除了 static 关键字)并且可以访问一个 url 并获取整个页面。
-
不,即使在删除静态之后,我也导航到 google.com,我得到的只是页面上 html 标记的一半。我无法在此处将其添加到评论中。
-
你能用 Fiddler 查看实际响应中的内容吗?
标签: windows-phone-7 httpwebrequest webclient