2011-01-10 38 views
1

功能比方說,我有一個Web請求:獲取網址在回調的WebRequesting

WebRequest webRequest = WebRequest.Create(Url); 
webRequest.BeginGetResponse(this.RespCallback, webRequest); 

現在是有什麼辦法來檢索

private void RespCallback(IAsyncResult asynchronousResult) 
{ 
    // here 
} 

的URL的想法是我想在執行網絡請求時在url中提供序列標識,然後在回調中檢索它並匹配它以知道此回調來自該請求。

任何想法?

回答

0

這應該工作:

private void RespCallback(IAsyncResult asynchronousResult) 
{ 
    WebRequest wreq = asynchronousResult as WebRequest; 
    Uri wreqUri = wreq.RequestUri; 
} 
+0

我相信你需要投asynchronousResult.AsyncState(而不僅僅是asynchronousResult)到WebRequest的,如下面的其他答覆中提到。 – 2014-01-29 18:14:45

0

由於您將WebRequest作爲「狀態」傳遞給BeginXXX cal,您可以通過訪問RespCallback中的IAsyncResult的AsyncState屬性來回調它。 WebRequest的獲取Url。

var wr = asynchronousResult.AsyncState as WebRequest.