在golang中拦截对进程的响应

时间:2017-08-24 07:49:52

标签: go browser process request response

我有一个激活浏览器的进程,该浏览器向本地服务器发出请求。 服务器应该响应,但我不知道如何看,客户端,答案。 我需要的是发出请求的浏览器。我不想用http.NewRequest自己编写。

client.go:

func openChrome() {

  var page = "https://localhost:1333/"

  program := "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
  url := []string{"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", page}
  attr := &os.ProcAttr{
    Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
  }

  proc,err:=os.StartProcess(program, url, attr)
  proc.Wait();

  // if err!=nil, log.Fatal(err)
}

1 个答案:

答案 0 :(得分:1)

要查看回复并更轻松地控制请求,可以使用chromedpchromedriver(使用webdriver)或selenium等工具加载网页并查找回复在浏览器中。所有这些都应该可以在不同程度上访问,并且可以用来驱动浏览器完成标准请求周期,就像人类正在这样做(加载内容和查询加载的内容)。

你可以从你启动的进程中看到stdout和stderr,但这不太可能帮助你完成这个特定的任务,所以我忽略了这一点。

您没有给出排除直接请求的理由,但是为了完全控制这将是另一种可能性,除非您需要呈现html,否则您的代码可以执行浏览器可以执行的所有操作(更改用户代理,解析HTML等) )。

相关问题