为了账号安全,请及时绑定邮箱和手机立即绑定

如何停止代理请求的反向代理

如何停止代理请求的反向代理

Go
qq_笑_17 2022-09-12 17:02:46
有没有办法阻止向目标服务器发送传入请求?例如,如果我有一个缓存,并且我只能使用本地数据响应客户端。或者在验证后,我想向客户端返回错误。httputil.ReverseProxy
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您应该能够使用缓存包装 ,该缓存可以根据请求使用缓存,也可以回退到 .http.DefaultTransporthttp.DefaultTransport


package main


import (

    "net/http"

    "net/http/httputil"

)


var _ http.RoundTripper = &CachingTransport{}


type CachingTransport struct {

    // put your cache here  

}


func (c *CachingTransport) RoundTrip(request *http.Request) (*http.Response, error) {

    // determine whether to use the cache and return, or use the default transport

    return http.DefaultTransport.RoundTrip(request)

}


func main() {

    _ = httputil.ReverseProxy{

        Transport: &CachingTransport{},

    }

}


查看完整回答
反对 回复 2022-09-12
?
aluckdog

TA贡献1847条经验 获得超7个赞

A 具有单个导出方法,即响应作者,要求 *请求),这使得它实现了网络/http。处理程序接口。httputil.ReverseProxy

因此,基本上,在某个地方,您现在正在使用一个普通的实例,而不是使用您的自定义类型的实例,该实例也可以实现,保留指向 的实例的指针,并处理请求本身或调用该实例的。httputil.ReverseProxynet/http.Handlerhttputil.ReverseProxyReverseProxyServeHTTP


查看完整回答
反对 回复 2022-09-12
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号