0

我正在尝试为 windows phone 7 制作一个应用程序。这个应用程序基本上会从我们在工作中用作工作日程的网站检索信息,然后将检索到的信息重新排列到 Metro 风格的 UI 中。老实说,我不知道从哪里开始,即。如何检索信息。我应该使用 webclient 类吗?httpwebrequest 类?或者是其他东西?

所有的想法都被应用了

这里有一个:-图。 我尝试访问的网站

更新:-

好吧,要么我完全愚蠢,要么我正在编写的代码有问题,我无法弄清楚。我使用的代码与您编写的代码相同,但我仍然收到一个错误,即 Proxy 的定义不在 System.Net.WebRequest 中:(这是我的代码(工作版本):-

    private void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        if (!App.ViewModel.IsDataLoaded)
        {
            App.ViewModel.LoadData();
        }
        string url = "https://medinet.se/*****/schema/ibsef";
        WebRequest request = WebRequest.Create(url);
        request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallBack), request);
    }

    private void ReadWebRequestCallBack(IAsyncResult callbackResult)
    {
        try
        {
            WebRequest myRequest = (WebRequest)callbackResult.AsyncState;
            WebResponse myResponse = (WebResponse)myRequest.EndGetResponse(callbackResult);

            using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
            {
                string results = httpwebStreamReader.ReadToEnd();
                Dispatcher.BeginInvoke(() => parsertextBlock.Text = results);
            }
            myResponse.Close();
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.ToString());
            Dispatcher.BeginInvoke(() => parsertextBlock.Text = ex.ToString());
        }
    }

但是如果我添加 request.Proxy=null !!我收到一个错误,即(System.Net.WebRequest)中没有代理的定义。老实说,我开始对此感到生气。

你的

/奥马尔

4

1 回答 1

0

该过程称为 ScreenScrape,我建议您使用 Html Agility Pack http://htmlagilitypack.codeplex.com/。制作一个 Web 服务,从您的网站检索信息并重新排列为适当的格式。通过电话使用您的网络服务并显示您的数据。

使用 WebRequest ( http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx ) 和 WebResponse ( http://msdn.microsoft.com/en-us/library/system.net。网络响应(v=vs.100).aspx)。

提示:将 WebRequest.Proxy 属性 ( http://msdn.microsoft.com/en-us/library/system.net.webrequest.proxy.aspx ) 设置为 null,因为我发现它会快得多。

更新:有关 WebRequest 代理属性的更多信息

在 WebRequest 对象上设置Proxy = null以避免初始延迟(这样请求就不会开始自动检测代理,我发现它更快)。

WebRequest req = WebRequest.Create("yourURL");
req.Proxy = null;

它在 System.Net 命名空间中,所以放置一个 using 语句using System.Net;

System.Net.WebRequest req = WebRequest.Create("yourURL");
req.Proxy = null;

问候。

于 2012-04-09T10:31:26.967 回答