【问题标题】:Using only one Webclient instance in multiple XAML.cs files在多个 XAML.cs 文件中仅使用一个 Webclient 实例
【发布时间】:2014-04-19 02:14:17
【问题描述】:

我只需要知道如何使用 webclient 无关页面的一个实例..

代码如下

 WebClient webClient = new WebClient();
             webClient.DownloadStringCompleted += webClient_DownloadStringCompleted;

            webClient.DownloadStringAsync(new Uri("http://ds.co/ee.php"));

【问题讨论】:

  • 你为什么将它同时标记为 Windows Phone 7 和 8?
  • 公共静态 WebClient webClient = new WebClient(); ?是这样的吗?

标签: c# .net windows-phone-8 webclient


【解决方案1】:

您要做的是创建一个网络层。这一层将允许您使用相同的 WebClient 来满足您的任何需求。

例如:

public static class NetworkLayer{
    public static WebClient wc;

    public void InitializeWebClient(){
       wc = new WebClient();       
    }
    public void MakeCall(Uri uri){
      if(!wc.isBusy){
          wc.DownloadStringCompleted += (s,a)=>
          {  
             //Get your results
          };

          wc.DownloadStringAsync(uri);
       }
    }
}

MainPage.XAML.cs 将引用您的网络层

NetworkLayer.Initialize();
NetworkLayer.MakeCall(new Uri("http://www.google.com",UriKind.RelativeOrAbsolute));

【讨论】:

  • 谢谢,我怎样才能将cookies添加到webclient?我需要开始与 php 的会话,但我无法做到这一点。这有一些信息,但我不明白,它不起作用 webClient.Headers.Add(HttpRequestHeader.Cookie, "cookies"); stackoverflow.com/questions/13275042/add-cookie-to-webclient
  • 我已经把它放到了我的 app.cs 中,现在我可以从任何地方访问 public static WebClient webClient = new WebClient();顺便说一句
猜你喜欢
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多