修改内置资源XHR代理注释说明

This commit is contained in:
杨红岩 2023-08-26 20:03:26 +08:00
parent 3694611b10
commit feadef044b
4 changed files with 26 additions and 18 deletions

View File

@ -27,6 +27,7 @@ type browserConfig struct {
// LocalResource // LocalResource
// 本地资源加载配置 // 本地资源加载配置
// 在浏览器进程初始化
func (m *browserConfig) LocalResource(config *LocalLoadConfig) { func (m *browserConfig) LocalResource(config *LocalLoadConfig) {
localLoadResourceInit(config) localLoadResourceInit(config)
} }

View File

@ -35,11 +35,15 @@ type windowCurrentProperty struct {
// 提供部分窗口属性配置,初始化时生效 // 提供部分窗口属性配置,初始化时生效
// 如需更多属性配置或自定义窗口行为请在`SetBrowserInit`回调函数中使用 // 如需更多属性配置或自定义窗口行为请在`SetBrowserInit`回调函数中使用
type WindowProperty struct { type WindowProperty struct {
IsShowModel bool // 是否以模态窗口显示 IsShowModel bool // 是否以模态窗口显示
WindowInitState types.TWindowState // 窗口 初始状态: 最小化、最大化、全屏, 全屏时隐藏标题栏生效 WindowInitState types.TWindowState // 窗口 初始状态: 最小化、最大化、全屏, 全屏时隐藏标题栏生效
WindowType consts.WINDOW_TYPE // 窗口 类型 WINDOW_TYPE default: WT_MAIN_BROWSER WindowType consts.WINDOW_TYPE // 窗口 类型 WINDOW_TYPE default: WT_MAIN_BROWSER
Title string // 窗口 标题 Title string // 窗口 标题
Url string // 默认打开URL //Url 默认打开URL, 支持http和LocalLoad(本地资源)加载方式
// http方式: http://www.example.com, LocalLoad方式: fs://energy/index.html, or file://energy/index.html
// http: 需要web服务支持, LocalLoad: 不需要web服务支持, 如果浏览器调用数据接口需要配置代理
// LocalLoad: 通过 Config.LocalResource 配置实现
Url string
Icon string // 窗口图标 加载本地图标 local > /app/resources/icon.ico, VF窗口linux使用png Icon string // 窗口图标 加载本地图标 local > /app/resources/icon.ico, VF窗口linux使用png
IconFS string // 窗口图标 加载emfs内置图标 emfs > resources/icon.ico, VF窗口linux使用png IconFS string // 窗口图标 加载emfs内置图标 emfs > resources/icon.ico, VF窗口linux使用png
EnableWebkitAppRegion bool // EnableWebkitAppRegion bool //

View File

@ -77,6 +77,9 @@ func localLoadResourceInit(config *LocalLoadConfig) {
localLoadRes.LocalLoadConfig = *config localLoadRes.LocalLoadConfig = *config
} }
// Build
// 构建本地资源加载配置
// 初始化默认值和默认代理配置
func (m LocalLoadConfig) Build() *LocalLoadConfig { func (m LocalLoadConfig) Build() *LocalLoadConfig {
if localLoadRes != nil && !process.Args.IsMain() { if localLoadRes != nil && !process.Args.IsMain() {
return nil return nil

View File

@ -188,10 +188,11 @@ func (m *XHRProxy) send(scheme string, request *ICefRequest) (*XHRProxyResponse,
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 构造目标地址
targetUrl := new(bytes.Buffer) targetUrl := new(bytes.Buffer)
targetUrl.WriteString(scheme) targetUrl.WriteString(scheme)
targetUrl.WriteString(m.IP) targetUrl.WriteString(m.IP)
if m.Port > 0 { if m.Port > 0 { // ip:port
targetUrl.WriteString(":") targetUrl.WriteString(":")
targetUrl.WriteString(strconv.Itoa(m.Port)) targetUrl.WriteString(strconv.Itoa(m.Port))
} }
@ -199,10 +200,10 @@ func (m *XHRProxy) send(scheme string, request *ICefRequest) (*XHRProxyResponse,
targetUrl.WriteString(reqUrl.RawQuery) targetUrl.WriteString(reqUrl.RawQuery)
// 读取请求数据 // 读取请求数据
requestData := new(bytes.Buffer) requestData := new(bytes.Buffer)
postData := request.GetPostData() data := request.GetPostData()
if postData.IsValid() { if data.IsValid() {
dataCount := int(postData.GetElementCount()) dataCount := int(data.GetElementCount())
elements := postData.GetElements() elements := data.GetElements()
for i := 0; i < dataCount; i++ { for i := 0; i < dataCount; i++ {
element := elements.Get(uint32(i)) element := elements.Get(uint32(i))
switch element.GetType() { switch element.GetType() {
@ -220,10 +221,11 @@ func (m *XHRProxy) send(scheme string, request *ICefRequest) (*XHRProxyResponse,
} }
element.Free() element.Free()
} }
postData.Free() data.Free()
} }
logger.Debug("XHRProxy TargetURL:", targetUrl.String(), "method:", request.Method(), "dataLength:", len(requestData.Bytes())) tarUrl := targetUrl.String()
httpRequest, err := http.NewRequest(request.Method(), targetUrl.String(), requestData) logger.Debug("XHRProxy URL:", tarUrl, "method:", request.Method(), "length:", requestData.Len())
httpRequest, err := http.NewRequest(request.Method(), tarUrl, requestData)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -241,11 +243,9 @@ func (m *XHRProxy) send(scheme string, request *ICefRequest) (*XHRProxyResponse,
} }
header.Free() header.Free()
} }
//httpRequest.Header.Add("Host", "www.example.com")
//httpRequest.Header.Add("Host", "energy.yanghy.cn") //httpRequest.Header.Add("Origin", "https://www.example.com")
//httpRequest.Header.Add("Origin", "https://energy.yanghy.cn") //httpRequest.Header.Add("Referer", "https://www.example.com/")
//httpRequest.Header.Add("Referer", "https://energy.yanghy.cn/")
httpResponse, err := m.HttpClient.Client.Do(httpRequest) httpResponse, err := m.HttpClient.Client.Do(httpRequest)
if err != nil { if err != nil {
return nil, err return nil, err