1
這是通過AsyncCallback函數處理HttpWebRequest的代碼片段。 服務器端響應很好。它只響應一個返回消息,但是這個客戶代碼被多次調用並給出了令人頭疼的問題。多次調用異步回調函數(C#)
//創建請求 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;
}
}
我得到了非常連續的相同的返回消息。 任何人都可以幫忙嗎?提前致謝。
這可能與更多的*代碼* *此代碼片段。不要再次調用此代碼,直到收到響應並且您使用「ReturnMessage」。考慮開始一個線程,如果這是一個問題,所以你可以使用GetResponse()。 – 2012-08-13 16:28:33
感謝Hans。我解決了這個問題。這不是因爲我的異步回調實現。剛剛在另一個地方發現了問題。 – 2012-08-13 18:05:38