2016-05-15 13 views
0

私はHttpWebRequestを使用してサーバーからJSONを取得しようとしています。しかし、別のJSON Imで別のURLを試してみると、 "Request Time Out"が表示されます。ここに私のコードは次のとおりです。応答タイムアウトxamarin android

//url = "http://46.105.85.199:3000/api/books 
     // Create an HTTP web request using the URL: 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 
     request.Method = WebRequestMethods.Http.Get; 
     request.Accept = "application/json"; 
     request.ContentType = "application/json"; 
     request.Timeout = 300000; 
     var response = (HttpWebResponse)request.GetResponse(); 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 
     string output = reader.ReadToEnd(); 

     response.Close(); 
     return output;` 

とJSON:

[ 
{ 
"metaData": { 
    "title": "Гарри Поттер и Принц-полукровка (Росмэн) -0", 
    "language": "ru", 
    "date": "2005", 
    "creator": "Джоан Кэтлин Роулинг", 
    "creatorFileAs": "Джоан Кэтлин Роулинг", 
    "publisher": "РОСМЭН", 
    "description": "", 
    "subject": "child_adv" 
}, 
"chapters": [ 
    { 
    "id": "cover", 
    "href": "OEBPS/cover.xhtml", 
    "media-type": "application/xhtml+xml" 
    }, 
... 
], 
"name": "legion.epub", 
"url": "/upload/common/legion.epub", 
"lastMark": null, 
"cover": "./client/upload/images/missing.jpg", 
"id": 8, 
"readerId": null, 
"teamId": null 
    } 
] 

のように。私はidとchapterでも本を手に入れようとしましたが、同じ結果を得ました。

答えて

1

AcceptContentTypeも指定されていないgoogle.comのようなサードパーティ製サーバへの簡単な取得リクエストで問題を絞り込むには、

urlの後ろに隠れているサーバーで問題が発生している可能性があります。タイムアウトが再現されない場合。クライアント(デバイス/エミュレータ)やウェブプロキシ/無線LANルータなどの間に何か問題がある場合よりもタイムアウトが続く場合。

後者を確認するには、PCからの同じ要求、つまり標準ブラウザを使用します。それは速い応答を取り戻していますか?

+0

はいです。この問題は、JSONがチャプターに追加されたときに表示されました。 –

+0

@LukaBaryshych私はあなたのコメントを得ていません。そして、あなたは何かがレスポンスに追加されたとき、すなわちサーバアクションのときに問題が発生したと言うでしょうか?理解できません。いずれにしても、答えは受け入れられますか? –

+0

クライアントが作成されたとき、それは単純なJSONで動作しました。その後、APIが変更され(「チャプター」が追加されました)、クライアントが壊れました。私はスマートフォンからではなく、PCから応答を取得できるので、問題がサーバーにあるように見えます。 –

関連する問題