开发者

Dotnet webclient timesout but browser works file for json webservice

开发者 https://www.devze.com 2023-03-18 00:53 出处:网络
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.

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 ha开发者_开发百科rd 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?


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.


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();
           }
       }
0

精彩评论

暂无评论...
验证码 换一张
取 消