我正在为Windows Phone制作应用程序,因为我需要一些保存在Web浏览器控件中的登录cookie,我使用此处的代码:Grabbing Cookies in Web Browser Control - WP7来创建HTTPWebRequest并获取一些用于解析的JSON数据但是我在这个片段的最后一行得到了两个错误
Dim browser = New WebBrowser()
Dim brwhttp = GetType(WebRequestCreator).GetProperty("BrowserHttp")
Dim requestFactory = TryCast(brwhttp.GetValue(Browser, Nothing), IWebRequestCreate)
Dim uri = New Uri("some-url")
Dim req = requestFactory.Create(uri)
req.Method = "GET"
req.BeginGetResponse(New AsyncCallback(request_CallBack), WebRequest)
(1)。 'WebRequest'是一种类型,不能用作表达式。 (2)。委托'System.AsyncCallback'需要'AddressOf'表达式或lambda表达式作为其构造函数的唯一参数。
如何解决?
更新1:通过在'request_CallBack'之前添加'Address Of'来修复错误(2)但仍然存在错误(1)。 更新2:修复了所有错误,但没有得到任何响应(空)。我的代码出了什么问题?
答案 0 :(得分:0)
问题是两行req.BeginGetResponse(New AsyncCallback(request_CallBack), WebRequest)
这有两个问题。
AddressOf
运算符创建委托。此外,编译器将推断委托类型,因此您不需要构造函数这样:
req.BeginGetResponse(AddressOf request_CallBack, Nothing)
如果需要将类型传递给请求回调,请使用
req.BeginGetResponse(AddressOf request_CallBack, GetType(WebRequest))
然而,这看起来像复制更改,你想要的可能是
req.BeginGetResponse(AddressOf request_CallBack, req)