2017-08-04 1 views
0

オンラインAPIから画像を取得するNuGetパッケージを作成しています。私は.NetStandard 1.4を使用していて、System.Net.Httpバージョン4.3.2を使用しています。 Loginメソッドを呼び出してapiにアクセスするトークンを取得するたびに、httpコールは返されず、タイムアウトによりタスクキャンセルの例外が発生するまでハングします。私は、非同期呼び出しの前に.Resultや.Wait()が存在しないことを確認するなど、私がオンラインで見つけた複数のソリューションを試してみました。また、間違ったURLを使用しようとしましたが、呼び出しがまだ停止し、URLが存在しないと返されません。.NetスタンダードHttp SendAsync Never Returns返信

下記のメインのhttpコールを投稿しました。なぜこれがぶら下がっているかについての助けは非常に高く評価されるでしょう。

HttpRequestMessage requestMessage = new HttpRequestMessage(); 
requestMessage.RequestUri = new Uri($"{BaseUrl}/login"); 
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(HttpContentType.JSON)); 
requestMessage.Method = HttpMethod.Post; 
requestMessage.Content = new StringContent(JsonConvert.SerializeObject(values), Encoding.UTF8, HttpContentType.JSON); 

using (HttpClient httpClient = new HttpClient()) 
{ 
    using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage)) 
    { 
     if (response.IsSuccessStatusCode == true) 
     { 
      // Do work 
     } 
    } 
} 

BaseUrlの値とウェブサイトのパスが正しいと私はそれを確認しました。また、正しい情報を使用していることを確認するために、同じリンクと、郵便配達員に送る必要のあるすべての情報を使用しました。

私は、このメソッドを起動するために、ボタンとクリックイベントを使用して、コンソールプロジェクトであるMSTestとWPFプロジェクトを使用してこれをテストしようとしました。決してすべてのメソッドがハングアップし、私はしばらく前にこれを考え出した

using (HttpResponseMessage ... 
+0

これらを確認しましたか?https://stackoverflow.com/questions/19704432/await-httpclient-sendasynchttpcontent-is-non-responsive、https://stackoverflow.com/questions/12933090/async-await-with- configurewaits-continueoncapturedcontext-parameter-and-synchr –

+0

ええ、私は既にこれらの2つの投稿を見つけて、幸運の解決策を試しました... – CraftyCoder

+0

'http:// example.com'を打つことができますか?そうでなければ、問題はおそらく 'HttpClient'ではありません。サーバーがただ応答していない可能性があります。 –

答えて

0

を渡されるが、私のルータの設定であることを起こりました。 Apple Airport Extremeを使用していて、IPv6設定が「自動的に」に設定されています。私はそれを「リンクローカルのみ」に変更し、すべてのHTTPコールが正しく動作するようになり、非常に反応的でした。

関連する問題