1

これは、AsyncCallback 関数によって HttpWebRequest を処理するためのコード スニペットです。サーバー側のレスポンスも良好。1 つのリターン メッセージだけに応答するだけですが、このクライアント コードは複数回呼び出され、ひどい頭痛の種になります。

// リクエストの作成 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

        try
        {
            // Make request with the following inline Asynchronous callback
            request.BeginGetResponse(new AsyncCallback((asynchronousResult) =>
                {
                    HttpWebRequest aRequest = (HttpWebRequest)asynchronousResult.AsyncState;
                    HttpWebResponse aResponse = (HttpWebResponse)aRequest.EndGetResponse(asynchronousResult);

                    using (StreamReader streamReader = new StreamReader(aResponse.GetResponseStream()))
                    {
                        // Deserialize the result
                        string jsonString = streamReader.ReadToEnd();
                        result = DeserializeToListOfObject(jsonString);

                        JavaScriptSerializer jS = new JavaScriptSerializer();
                        result = (List<object>)jS.Deserialize<List<object>>(jsonString);

                        if (result[0] is object[])
                        {
                            foreach (object message in (object[])result[0])
                            {
                                this.ReturnMessage = message;
                            }
                        }

同じ返信メッセージが非常に連続して返されました。誰でも助けることができますか?前もって感謝します。

4

1 に答える 1

0

回線に問題があるようです

request.BeginGetResponse(new AsyncCallback((asynchronousResult) => {}

MSDNは、非同期の要求と応答の適切な実装について説明しています

次の行に注意してください。

IAsyncResult result=
        (IAsyncResult) myHttpWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState);

お役に立てれば。

于 2012-08-13T16:15:50.747 に答える