2009-08-31 9 views
0

次のコードがあります。 (私は私の目標の面でこの権利を獲得していた場合、私は知らない...ログインして、上で継続する)HttpRequestエラーを取得した後、バイパスして続ける方法

 // Create the atual Request instance 
     HttpWebRequest request = CreateWebRequest(requestURI, data.Length); 
     request.ContentLength = data.Length; 
     request.KeepAlive = false; 
     request.Timeout = 30000; 

     try 
     { 
      requestStream = request.GetRequestStream(); 
      requestStream.Write(data, 0, data.Length); 
      requestStream.Close(); 

      // get response 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

      using (response) 
      { 
       if (response.StatusCode != HttpStatusCode.OK) 
       { 
        _requestError = true; 
        string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode); 
        throw new ApplicationException(message); 
       } 

       responseStream = response.GetResponseStream(); 
      } 
     } 
     catch (Exception ex) 
     { 
      _requestError = true; 
     } 

リモート名を解決できませんでした:「api10.aaa.com」 説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.Net.WebException:リモート名を解決できませんでした: 'api10.aaa.com'

Source Error: 

Line 87:      { 
Line 88:       if (response.StatusCode != HttpStatusCode.OK) 
Line 89:       { 
Line 90:        _requestError = true; 
Line 91:        string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode); 

当社のGlobal.asaxのApplicationErrorは、スタック内のすべてのエラーを拾います。

は今私の問題:中にエラーが今までにあります場合、私はテスト目的のためにエラーを取得し、私は公開するプライベートフィールドフラグBOO _requestErrorに追加なるように、私は意図的にこの時間は無効であることをウリに変更要求。なぜなら、要求が失敗したケースをテストしたいからです。要求が失敗した場合、私はログオンして移動することができます。停止しないでください。今すぐ停止します。公開している公開プロパティから_requestErrorにアクセスできるようにしたいのです。上記のコードは実際には基本リクエストクラスにあります。私のコードビハインドの1つでは、このクラスのインスタンスを使用しており、上記のコードが呼び出されています。私はブール旗を得ることができるようにするために、何かメジャーが発生した場合にrequestError私はそのテーブルのいくつかのテーブルにログオンするwnatの後に...ログテーブルではなく、いくつかのビジネスロジックや証明者の他のオブジェクト。だから私の要点は、私はこのコードがランタイムを停止させることができないということです。私はこのエラーが発生した後も続行したいです。私は、_requestErrorを無効にして私の公共財産を利用する機会を得ることはありません。

答えて

0

requestUri変数に渡される値が "api10.aaa.com"のように見えます。

ブラウザに入力して、何が起こるかを確認してください。 requestUriを有効なURIに設定する必要があります。これは、ブラウザに入力してナビゲートできることを意味します。

は、それが "http://api10.aaa.com" であれば、これはうまくいく可能性

を追加しました?

がOKコメントとコードの修正

後に添加しました。それは理にかなって、

は、その後、私は何が起こっていることは、エラーがこの行で発生していることであると信じています:

requestStream = request.GetRequestStream(); 

その場合は、その後、tryブロック内で他に何も例外のでexecureませんCatchブロックにまっすぐジャンプします。

だから、その行をtry/catchするか、他のコードをすべて "Finally"ブロックに移動する必要があります。

+0

いいえ、私は意図的に無効なUriに変更しています。私は、要求が悪いUriなどの問題を抱えていて、クラス呼び出しの背後にあるコードで呼び出すことができ、このコードを含むクラスのインスタンスを使用すると、publicプロパティを通じて_requestErrorを取得できるようになると、それと何かをする。今、もし私が何らかのエラー(無効なURiか何かがあっても)が出たら、スローされた例外が出ます。私は本質的にそれを記録して移動したい。 – PositiveGuy

+0

私のせいで、最初のスレッドは終わらなかった。良い神。それを今読んでください。 – PositiveGuy

関連する問題