2011-07-06 8 views
2

次のコードを使用して、次のjson webservice https://mtgox.com/code/data/getDepth.phpの結果を文字列に変換しようとしています。Dotnet webclientタイムアウトだが、json webservice用のブラウザワークファイル

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

ただし、常にタイムアウト例外とデータは返されません。私はfastjsonを使用してレスポンスをオブジェクトに変換し、そのページの内容を返すことではないことを期待しています。

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

また、同じエラーが発生しました。誰かが私が間違っていることを指摘できますか?

答えて

3

うーん、strage、これは私にとって素晴らしい作品:サイトがそれを期待しているようだと私はユーザエージェントHTTPヘッダを指定しています

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

注意してください。

+0

ありがとうございます。私はすべての設定であまりにも多くの時間を浪費してしまったとは信じられません。早く尋ねた方がいいでしょう。素早く返信してくれてありがとう – Seer

0

私は以前同様の問題がありました。 request.KeepAlive = false私の問題を解決しました。試してみてください:

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

あなたが働く前に他の投稿と同じようにこれをテストしてください – Seer

関連する問題