【问题标题】:c# file downloading problemc#文件下载问题
【发布时间】:2011-09-24 03:44:49
【问题描述】:

我正在使用此代码从服务器下载文件并从 JSON 表示法解析数据:

        WebClient wcl = new WebClient();
        Uri url = new Uri(tickurl);
        string srlz = wcl.DownloadString(url);
        var dict = (new JavaScriptSerializer()).Deserialize<Dictionary<string, dynamic>>(srlz);

当我将它与http://deepbit.net/api/ + 我的令牌(URI 返回 JSON 数据)一起使用时,它运行良好。

https://mtgox.com/code/data/ticker.php 卡在函数的第 3 行(数据下载)。

我做错了什么?两个 URL 都返回相同的 JSON 格式数据。

[add] https 没有问题,此代码可以很好地与其他 https 服务一起使用。我想知道这是否可能是 SSL 证书的问题。

已解决:关闭 SSL 证书验证。谢谢

【问题讨论】:

  • 您是否尝试过在 Wireshark 中查看所涉及的流量?
  • 可能是因为是https url?

标签: c# .net download


【解决方案1】:

我怀疑它由于安全问题而失败。当我使用wget 获取时,我得到:

错误:证书公用名www.mtgox.com' doesn't match requested host namemtgox.com'

当我使用--no-check-certificate 标志获取wget 时,这很好。

我不知道你是否可以说服WebClient不要检查证书...但更好的选择显然是修复证书。

或者,试试这个网址:https://www.mtgox.com/code/data/ticker.php - 请注意前面的www。这可以毫无问题地获取 wget

【讨论】:

  • 谢谢!我关闭了 SSL 证书检查,它可以工作:) 虽然这可能不安全
  • @Steel:您是否尝试使用第二个 URL?
  • 刚才试过了,还是不行。解决方案上层似乎是最合适的,以后会更深入
【解决方案2】:

网址:https://mtgox.com/code/data/ticker.php 甚至不会在浏览器中打开。它开始下载“ticker.php”文件。您的服务器配置错误。代码很好。很可能服务器未正确配置为将 .php 文件作为脚本处理。

【讨论】:

  • 谢谢,但这不是我的服务器,Chrome 好像打开得很好。
  • 也许它配置正确,但只是将请求作为下载提供。不知道 WebClient 如何处理它们
  • 是的,这也是一种可能。
【解决方案3】:

这是 Jon Skeet 所说的证书错误。

在这里寻找一个简单的解决方案

WebClient + HTTPS Issues

您不应该将它用于所有请求,仅用于调试

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-07-05
    • 2012-06-20
    • 2011-02-07
    • 2017-03-03
    • 2010-12-05
    相关资源
    最近更新 更多