【问题标题】:Google doc JSON request response time?谷歌文档 JSON 请求响应时间?
【发布时间】:2013-06-10 05:28:40
【问题描述】:

我有一个谷歌文档电子表格设置为 RSS -> json 发布,我正在使用下面的代码来检索它:

public void getDocData()
{
    String url = "https://spreadsheets.google.com/blah blah blah/basic?alt=json";
    using (var w = new WebClient())
    {
        //here's where the problem is
        String json_data = w.DownloadString(url);

        //blah blah parse json_data;
     }
 }

我的问题是 DownloadString 花费了非常长的时间(10-15 秒),我完全不知道为什么。奇怪的是我有一个 node/javascript 应用程序使用完全相同的链接和一个 http.get 请求并且没有同样的问题。

有人有什么想法吗?

【问题讨论】:

    标签: c# json


    【解决方案1】:

    根据您的症状,我倾向于认为 Google Docs 与此无关。您是否尝试过调查与 WebClient 直接相关的类似问题?例如,确保它没有代理解析问题:

    using (var w = new WebClient())
    {
        w.Proxy = null;
        ...
    

    【讨论】:

    • 我实际上使用完全相同的代码从 Twitch.tv API 获取 json 响应,它根本没有相同的问题。
    • @Keirathi:您还有一个访问相同 Google API 的节点应用程序,并且返回速度很快。显然,这个问题在某种程度上与 WebClient 相关。由于协议(http / https)或DNS查找(可能是您的主机文件中的某些内容?),这可能不是问题。我仍然建议先寻找与 WebClient 本身类似的问题。
    • 哦,你是对的。将代理设置为 null 完全修复了它。我想我应该先尝试你的方法:P 谢谢!
    【解决方案2】:

    尝试使用 acync msdn

    public void getDocData()
    {
      String url = "https://spreadsheets.google.com/blah blah blah/basic?alt=json";
      using (var w = new WebClient())
      {
        //here's where the problem is
        String json_data = w.DownloadStringAsync(url);
    
        //blah blah parse json_data;
      }
    }
    

    more details

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多