1

Json を取得して設定しようとしましたが、「endgetresponse」に例外があります。

   public void GetSetJsonString (string message)
        {
        this.message = message; 
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myurl);
        request.ContentType = "application/json; charset=utf-8";
        request.Accept = "application/json";
        request.Method = "POST";
        request.CookieContainer = new CookieContainer();
        request.CookieContainer.Add(myurl, myfirstcookie);
        request.CookieContainer.Add(myurl, mysecondcookie);
        request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);

    }
    private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
    {
        HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
        Stream postStream = request.EndGetRequestStream(asynchronousResult);
        byte[] byteArray = Encoding.UTF8.GetBytes(message);
        postStream.Write(byteArray, 0, byteArray.Length);
        postStream.Close();
        request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
    }

    private void GetResponseCallback(IAsyncResult asynchronousResult)
    {
        HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
        Stream streamResponse = response.GetResponseStream();
        StreamReader streamRead = new StreamReader(streamResponse);
        string answer = streamRead.ReadToEnd();
        streamResponse.Close();
        streamRead.Close();
    }
}

行で HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

私はこの例外を取得しました:

{System.Net.WebException: リモート サーバーがエラーを返しました: NotFound. ---> System.Net.WebException: リモート サーバーがエラーを返しました: NotFound。System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) で System.Net.Browser.ClientHttpWebRequest.<>c_ DisplayClasse.b _d(Object sendState) で System.Net.Browser.AsyncHelper.<>c_ DisplayClass1.b _0 (Object sendState) --- 内部例外スタック トレースの終了 --- プロジェクトの System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) で System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) で。 System.Net.Browser.ClientHttpWebRequest.<>c_DisplayClass1d で GetSetJson.GetResponseCallback(IAsyncResult asynchronousResult) _1b(オブジェクト状態2)}

不思議なことに、間違って送信した Json メッセージを送信すると、例外が発生せず、サーバーからエラー メッセージが返されました。

この例外が発生した理由と、この問題を解決する方法がわかりましたか?

どうもありがとう!

4

0 に答える 0