2017-02-23 9 views
0

私は、REST APIを通じてデータを読み取り、送信するWP8.1アプリケーションを作成しています。 「検索」以外は問題なく動作します。URLに到達していないHttpClient

このAPIはPOSTで動作し、私のクエリを定義するJson形式の文字列を送信する必要があります。ほんのわずかのフィルタを設定すると、REST APIの応答時間が長くなりすぎます。したがって、HttpResponseMessageオブジェクトは成功コードを持たず、Web APIが正しく実行されていても「NotFound」メッセージを返します。

私はPostman経由で同じリクエストを試すと正しく動作しますが、SoapUiで試してみると「java.net.SocketTimeoutException:Read timed out」というエラーメッセージが表示されます。

SoapUiでは応答を得るためにタイムアウトを延長することができましたが、TimeOutプロパティをHttpClientオブジェクトに設定してもC#コードは機能しません。

誰かが私の問題を解決するのに手伝ってください。 ありがとう!

EDIT コードは本当に簡単です:

HttpClient client = new HttpClient(); 
client.BaseAddress = new Uri(baseAddress); 
client.DefaultRequestHeaders.Accept.Clear(); 
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
client.DefaultRequestHeaders.ExpectContinue = false; 
client.Timeout = TimeSpan.FromSeconds(300); 

HttpContent content = new StringContent(json, Encoding.Unicode, "application/json"); 
HttpResponseMessage response = await client.PostAsync(uri, content)); 

if (response.IsSuccessStatusCode) 
{ 
    string jsonResponse = await response.Content.ReadAsStringAsync(); 
} 
+1

あなたが(例えばコードの一部を)やっていることについての詳細を提供する必要があるか、そうでなければ何ができるかを知るためにdificultされます問題は –

+0

@ElmerDantasコードが追加されました –

+0

'client.BaseAddress = new Uri(baseAddress)'と '' Joe.ThString()、Encoding.UTF8、 application.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue( "application/json"));プロパティ。 –

答えて

0

私は、これはあなたを好きではないだろうことを知っているが、あなたはRestSharpで試してみましたか?この特定のシナリオでは、POST経由で情報を送信する必要がある場合、HTTPClientは期待どおりに機能せず、本文の代わりにURIの一部として設定される「コンテンツ」情報が機能します。

コードのequivalenteブロックは、このようなことがあります

var client = new RestClient("http://example.com"); 
var request = new RestRequest("resource/{id}", Method.POST); 
request.AddParameter("name", "value"); 

// execute the request 
IRestResponse response = client.Execute(request); 

client.ExecuteAsync(request, response => { 
    Console.WriteLine(response.Content); 
}); 
+0

私のプロジェクトにRestSharpをインストールしようとするとエラーが発生しました。[link](https://github.com/restsharp/RestSharp/issues/808) –

+0

これをインストールする必要がありますライブラリ:このリンクのRestSharp.Portable HttpClient:nuget.org/packages/FubarCoder.RestSharp.Portable –

関連する問題