【发布时间】:2018-06-15 23:36:49
【问题描述】:
我想构建一个 golang 服务,它会监听 GET 请求,进行一些 URL 操作,然后将一个新请求(到被操作的 URL)代理回浏览器:
(从浏览器 -> 服务器)GET http://www.example.com/7fbsjfhfh93hdkwhfbf398fhkef93..
(服务器操纵 URL - 解密“7fbsjfhfh93hdkwhfbf398fhkef93..” -> “my-super-resource”)
(服务器 -> URL 资源)GET http://www.somewhereelse.com/my-super-resource
(服务器 -> 浏览器)来自http://www.somewhereelse.com/my-super-resource 的响应传递给浏览器(使用 cors)
整个链需要同步,这没关系。是否有一个体面的代理库来支持这种事情?
【问题讨论】:
-
这不适用于标准库
ReverseProxy? -
您也可以只使用标准
http.HandlerFunc,接收请求,对请求执行某些操作,然后使用Sling 之类的包发出另一个请求,等待响应,然后使用该响应将响应发送回原始请求。这也为您提供了代理行为,并且不太依赖于任何类型的“框架”方法。另外,我非常怀疑你会找到任何可以让你精确地完成你详细描述的事情的东西。这是非常具体的......您可能需要编写一些如上所述的自定义代码。
标签: go