2017-04-12 3 views
0

私はあなたの毎日の制限に達したときにHttpStatusCode 429を返すAPIといくつかの統合作業を行っています。ただし、Web応答オブジェクトのEnum HttpStatusCodeにはこのコードが含まれていません。HttpWebResponseステータスコード429

このレスポンスコードを確認する方法を教えていただけますか?ここで

は私が達成しようとしているかを示すためにいくつかのコードです:

try 
{ 
    //do something 
} 
catch (WebException webExp) 
{ 
    var response = (HttpWebResponse) webExp.Response; 

    //here I want to check status code for too many requests but it is not in the enum. 
    if (response.StatusCode == HttpStatusCode.TooManyRequests) throw webExp; 
} 
+0

aproachを提案できるようにコードを投稿してください。今私たちはあなたがどのようにAPIを呼び出すのか分かりません。 – Lorien

+0

コードサンプルなしで手助けするのは難しい。あなたは[How to return 429](http://stackoverflow.com/questions/22636602/how-to-return-http-429)を見て、後方に働いていますか? –

+0

申し訳ありませんが、私は何をしようとしているのかを説明するためのコードサンプルを追加しました。 – kcis8rm

答えて

0

私はあなたが応答を読み、その後、429またはあまりにも多くのリクエスト文字列を探すことができ、同じ問題を抱えていた:

string responseStr = ""; 
Stream responseStream = webEx.Response.GetResponseStream(); 
if (responseStream != null) 
{ 
    using (StreamReader sr = new StreamReader(responseStream)) 
    { 
     responseStr = sr.ReadToEnd(); 
    } 
} 

if (responseStr.Contains("429") || responseStr.Contains("Too many requests")) 
Console.WriteLine("Is 429 WebException ");