Dotnet webclient timesout but browser works file for json webservice

邮差的信 提交于 2019-12-08 02:10:00

问题


I am trying to get the result of the following json webservice https://mtgox.com/code/data/getDepth.php into a string using the following code.

using (WebClient client = new WebClient())
{
     string data = client.DownloadString("https://mtgox.com/code/data/getDepth.php");
}

but it always returns a timeout exception and no data. I plan to use fastjson to turn the response into objects and expected that to be that hard part not the returning of the content of the page.

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mtgox.com/code/data/getDepth.php");
  using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  {
       using (StreamReader sr = new StreamReader(response.GetResponseStream()))
       {
           string data = sr.ReadToEnd();
       }
   }

Also resulted in the same error. Can anyone point out what i am doing wrong?


回答1:


Hmm, strage, this works great for me:

class Program
{
    static void Main()
    {
        using (var client = new WebClient())
        {
            client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0";
            var result = client.DownloadString("https://mtgox.com/code/data/getDepth.php");
            Console.WriteLine(result);
        }
    }
}

Notice that I am specifying a User Agent HTTP header as it seems that the site is expecting it.




回答2:


I had similar issue before. request.KeepAlive = false solved my problem. Try this:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mtgox.com/code/data/getDepth.php");
  request.KeepAlive = false;
      using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
      {

           using (StreamReader sr = new StreamReader(response.GetResponseStream()))
           {
               string data = sr.ReadToEnd();
           }
       }


来源:https://stackoverflow.com/questions/6602990/dotnet-webclient-timesout-but-browser-works-file-for-json-webservice

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!