我使用httpwebrequest将其他网站的内容导入我的Windows手机应用程序,如下所示。我想获取页面的html,然后解析它以获得我想要的数据。
private void Button_Click(object sender, RoutedEventArgs e)
{
System.Uri targetUri = new System.Uri("http://www.contoso.com");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);
}
private void ReadWebRequestCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse myResponse=(HttpWebResponse)myRequest.EndGetResponse(callbackResult);// Exception is showing here.
using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
{
string results = httpwebStreamReader.ReadToEnd();
//TextBlockResults.Text = results; //-- on another thread!
Dispatcher.BeginInvoke(() => TextBlockResults.Text = results);
}
myResponse.Close();
}
但是收到以下错误:
{System.Net.WebException:远程服务器返回错误: 未找到。 ---> System.Net.WebException:远程服务器返回了一个 错误:NotFound。在 System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult的 asyncResult)at System.Net.Browser.ClientHttpWebRequest<> C_ DisplayClasse.b _d(对象 sendState)at System.Net.Browser.AsyncHelper<> C_ DisplayClass1.b _0(对象 sendState)---内部异常堆栈跟踪结束--- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod,Object state)at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult的 asyncResult)在myApplication.MainPage.RespCallback(IAsyncResult asynchronousResult)}
可能是什么问题?任何帮助将不胜感激。 感谢。
答案 0 :(得分:0)
试试这段代码(WebClient):
public void Client(string uri)
{
var clientToken = new WebClient();
clientToken.OpenReadCompleted += clientToken_OpenReadCompleted;
clientToken.OpenReadAsync(new Uri(uri));
}
private void clientToken_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
Stream reply = e.Result;
StreamReader reader = new StreamReader(reply);
MessageBox.Show(reader.ReadToEnd());
}
}
或阅读此帖Portable HttpClient for .NET Framework and Windows Phone