windows phone 获取服务器源代码

Posted

技术标签:

【中文标题】windows phone 获取服务器源代码【英文标题】:Windows phone get server source code 【发布时间】:2015-11-10 16:08:03 【问题描述】:

我正在尝试获取网站的源代码。在 Windows 应用程序中,一个简单的 http 请求就足够了。但是在windows phone中它要复杂得多。 我在谷歌上搜索了很多,并没有给出明确的答案。 这是我尝试过但没有取得很大成功的方法。

public static sReturn = "";

private string _InetGetSourceCode(string sUrl)

   _InetReadEx(sUrl);
   return sReturn;


private void _InetReadEx(string sUrl)

   WebClient client = new WebClient();

   client.DownloadStringCompleted += new    
   DownloadStringCompletedEventHandler(DownloadStringCallback2);
   client.DownloadStringAsync(new Uri(sUrl));


private static void DownloadStringCallback2(Object sender,DownloadStringCompletedEventArgs e)

   if (!e.Cancelled && e.Error == null)
   
      sReturn = e.Result;
   

我在这里做错了什么?

【问题讨论】:

你说的“没有大成功”是什么意思 我只是在报废样品,似乎没有任何效果。 似乎不起作用,比如... 例外?所有数据都大写?编码问题?超时?爆手机? WhatsApp的高分被抹去?如果您无法对问题做出清晰的解释,我们将如何给出解决方案? 【参考方案1】:

问题是您立即返回sReturn,但下载要到将来某个时间才能完成。所以sReturn在你返回的时候还是有空字符串的默认值。

您可以下载 this sample,其中包含使用 HttpClient 可移植库完全执行您想做的事情的代码。

【讨论】:

@Petter 说得通。我跟着链接迷路了。我从未使用过异步方法。我会尝试让它工作并回来。谢谢 @Maria async 不是一次性的方法。 Silverlight/Windows Phone 上的开发使用异步范例来访问数据,而不管操作需要什么。对于一些 live 示例,请参阅 Lucian Wishik (Microsoft) Async Silverlight sync Samples,这将很容易适用于 WP8 平台。 观看此视频,了解async 编程简介:Understanding Async and Awaitable Tasks【参考方案2】:

我终于找到了我的问题的正确答案: 非常感谢@Peter Torr - MSFT 的帮助让我找到了问题的确切答案

回答

    public static sReturn = "";
    public async Task _InetReadEx(string sUrl)
        
            try
            
                HttpClient httpClient = new HttpClient();

                HttpResponseMessage response = await httpClient.GetAsync(new Uri(sUrl));
                response.EnsureSuccessStatusCode();

                //sStatus = response.StatusCode + " " + response.ReasonPhrase + Environment.NewLine;
                sSource = await response.Content.ReadAsStringAsync();
                sSource = sSource.Replace("<br>", Environment.NewLine); // Insert new lines
            
            catch (Exception hre)
            
                sSource = string.Empty;
            
        

以及如何称呼它:

    public MainPage()
        
            InitializeComponent();
            Task.Run(async () =>  await _InetReadEx("http://url.com/"); ).Wait();
        

非常感谢大家和社区!

【讨论】:

以上是关于windows phone 获取服务器源代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Phone 8.1 中获取当前位置的当前货币代码

Windows phone8 获取本机 IP 地址

如何根据Windows Phone 7中的参数值在按钮中传递参数并获取后面代码中的值以重定向到另一页?

Windows Phone 8 推送通知 (MPNS) 服务器代码

如何获取方法异步 c# windows phone 8.1 的值

如何在 Windows Phone 8.1 上从数据库中获取图像并将其显示为字节数组