gpt4 book ai didi

windows-phone-7 - 在 WebClient wp7 中重定向时获取当前 Uri

转载 作者:行者123 更新时间:2023-12-03 02:24:53 24 4
gpt4 key购买 nike

我希望我不会开始一个已经完成的主题,但我在这里或其他地方都没有找到任何正确的答案。那么我们开始吧:我使用 WebClient 从网页下载 HTML 代码,然后使用该 WebClient 发送新请求,并且网页会重定向我。现在我想知道网站把我放在哪里了。

WebClient 类本身没有任何合适的属性,我已经尝试重写该类,以便可以获得响应 URI,但不知何故它不适用于 wp7。

那么有什么想法可以获取我的 WebClient 重定向到的 URI 吗?或者知道为什么当我想使用自己的类时应用程序崩溃:

    public class MyWebClient : WebClient
{
Uri _responseUri;

public Uri ResponseUri
{
get { return _responseUri; }
}
protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result)
{
WebResponse response = base.GetWebResponse(request, result);
_responseUri = response.ResponseUri;
return response;
}
}
}

提前致谢!

最佳答案

HttpWebRequest 是这里的解决方案,因为 WebClient 无论如何都是它的包装器。像这样的东西应该适合您的具体情况:

private HttpWebRequest request;
private bool flagIt = true;

public MainPage()
{
InitializeComponent();

request = (HttpWebRequest)WebRequest.Create("http://google.com");
request.BeginGetResponse(new AsyncCallback(GetData), request);
}

public void GetData(IAsyncResult result)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);

Debug.WriteLine(response.ResponseUri.ToString());

if (flagIt)
{
request = (HttpWebRequest)WebRequest.Create("http://microsoft.com");
request.BeginGetResponse(new AsyncCallback(GetData), request);
flagIt = false;
}
}

我在主页构造函数中发起请求,然后在回调中处理它。请注意我如何获取 ResponseUri - 您的最终目的地。

如果您不想阻止重定向并只是获取 URL(就像我在上面的代码片段中所做的那样),则无需处理 AllowAutoRedirect

关于windows-phone-7 - 在 WebClient wp7 中重定向时获取当前 Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6900024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com