使用重定向

本节示例可以参考示例文件"CaseStudy\WebViewer\拦截响应.Table"的窗口"重定向"。

重定向网页

我们之前已经介绍过,可以通过修改请求头重定向网页,例如在WebResourceRequested事件设置面的代码,会将对example.com的访问全部定向到百度:

Dim wv As WebViewer = e.Sender.WebViewer
Dim
url As String = e.Request.Uri.ToLower()
If
url.Contains("example.com") Then
    e.Response = wv.CoreWebView2.Environment.CreateWebResourceResponse(
    content:=
Nothing,
    statusCode:=302,
    reasonPhrase:=
"Found",
    headers:=
"Location: https://www.baidu.com")
End
If

上述代码的参数说明:

stream:=Nothing,       ' 无响应流(重定向不需要)

statusCode:=302,       ' 302临时重定向(301永久重定向)

reasonPhrase:="Found",   ' 状态描述

headers:="Location: https://www.baidu.com" ' 重定向目标地址

重定向资源

也可以通过修改请求头,重定向单个资源,上一节我们介绍了访问远程图片的方法,其实通过重定向来实现更加简单可靠。

下面是上一节(访问远程图片)的重定向版本,代码要简洁很多:


Dim
wv As WebViewer = e.Sender.WebViewer
Dim
url As String = e.Request.Uri.ToLower()
If
url.StartsWith("custom://chart/") AndAlso e.ResourceContext = CoreWebView2WebResourceContext.Image Then
   
Dim fl As String = FileSys.GetName(url)
   
If fl > "" Then
        fl =
"http://www.foxtable.com/image/" & fl
        e.Response = wv.CoreWebView2.Environment.CreateWebResourceResponse(
Nothing,302,"Found","Location: " & fl)
   
End If
End
If


本页地址:http://www.foxtable.com/webhelp/topics/6223.htm