当前位置: 首页 > news >正文

海珠免费网站建设华为手机网络营销策划方案

海珠免费网站建设,华为手机网络营销策划方案,seo的基本步骤,什么网站可以发布信息RoundTripper 是什么#xff1f; RoundTripper 是 net/http 包中的一个接口#xff0c;定义了处理 HTTP 请求返回和响应的方法#xff0c;是 http.Client 结构体中执行 http 请求的核心部分。接口定义如下#xff1a; type RoundTripper interface {RoundTrip(*Request)…RoundTripper 是什么  RoundTripper 是 net/http 包中的一个接口定义了处理 HTTP 请求返回和响应的方法是 http.Client 结构体中执行 http 请求的核心部分。接口定义如下 type RoundTripper interface {RoundTrip(*Request) (*Response, error) } 只定义了 RoundTrip 一个方法用于执行单个 HTTP 事务发送请求数据并返回对应的响应数据。RoundTrip 不应该去解析响应数据特别是如果获得了响应数据后RoundTrip 必须返回值为 nil 的 error不管响应的HTTP状态码是什么。如果没有获得响数据应返回一个非 nil 的 errorRoundTrip 也不应该尝试处理更高级的协议细节如重定向、身份验证或 cookie 等。 除了消费和关闭请求的 Body 之外RoundTrip 不应该修改请求RoundTrip 可以在单独的 goroutine 中读取请求的字段。在 Response Body 被关闭之前调用方不应该改变或重用请求。RoundTrip 必须始终关闭 body即使遇到 error但根据实现即使在 RoundTrip 返回之后也可以在单独的 goroutine 中关闭。 使用场景 借助 RoundTripper 可以在每个请求中添加特定的 header 或者对返回的响应数据进行特定的处理例如记录日志或根据返回的状态码执行对应逻辑。接下来看一个用于实现链路追踪功能只需要实现 RoundTripper 接口在执行 HTTP 请求的同时收集遥测数据如请求的持续时间、状态码等这些数据可以用于性能监控和故障排查。实现 RoundTripper 接口的示例代码如下 package http_otelimport (net/httpgo.opentelemetry.io/otelgo.opentelemetry.io/otel/attributego.opentelemetry.io/otel/codes )type OtelRoundTripper struct {original http.RoundTripper }func (ort *OtelRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {tracer : otel.Tracer()ctx, span : tracer.Start(req.Context(), req.URL.Path)defer span.End()req req.WithContext(ctx)resp, err : ort.original.RoundTrip(req)if err ! nil {span.RecordError(err)span.SetStatus(codes.Error, err.Error())} else {attrs : []attribute.KeyValue{{Key: http.status_code,Value: attribute.IntValue(resp.StatusCode),},{Key: http.method,Value: attribute.StringValue(req.Method),},{Key: http.route,Value: attribute.StringValue(req.URL.RequestURI()),},{Key: http.scheme,Value: attribute.StringValue(req.URL.Scheme),},{Key: http.user_agent,Value: attribute.StringValue(req.UserAgent()),},}span.SetAttributes(attrs...)}return resp, err }func New() *OtelRoundTripper {return OtelRoundTripper{original: tripper,} } 使用 net/http 包实现链路追踪代码如下 package mainimport (bytesfmtxxx/http-otelionet/http )func main() {reader : bytes.NewReader([]byte({foo:bar}))request, err : http.NewRequest(POST, http://xxx.com/user/list, reader)if err ! nil {panic(err)}request request.WithContext(traceCtx) // traceCtx 指上文的 context这里使用伪代码作演示request.Header.Set(Content-Type, application/json)client : http.Client{Transport: http_otel.New()}resp, err : client.Do(request)if err ! nil {panic(err)}defer resp.Body.Close()b, err : io.ReadAll(resp.Body)fmt.Println(string(b), err) } 首先定义了一个用于实现链路追踪功能的 OtelRoundTripper 结构体然后实现了 RoundTrip 方法。在 RoundTrip 方法中首先开启一个新的 trace span并且将追踪的信息编码到 HTTP 请求的 header 中。在请求完成后将返回的 HTTP 响应信息记录到 trace 中并返回 HTTP 响应数据。 小结 RoundTripper 接口的强大之处在于能够以简单且可扩展的方式自定义和控制 HTTP 请求的处理。无论是添加特定的 header、处理响应还是执行其他更高级的逻辑都可以借助 RoundTripper 来实现。
http://www.ihoyoo.com/news/50887.html

相关文章:

  • 网站建设收费标准方案wordpress 更换模板
  • 建设网站注册会员网站的备案可以管几年
  • 网站建设架构中小网站 架构
  • 建网站 多少钱钱建筑设计公司资质
  • 网站建设网页与数据库连接北京网站建设是什么
  • 做画册封面的网站防做网站视频
  • 怎么做网站上做电子书质量管理
  • 做网站建多大的画布python做简单网站
  • 公司做环评的网站什么是网络营销?它包括了哪些主要环节?
  • 网站设计 注意百度搜索链接
  • 网站使用标题做路径网页微信版官网登录保存文件在哪里
  • 集团网站建设方案网站开发流程管理
  • 域名交易网站哪个好抖音运营推广
  • 商务网站建站wordpress 最新发展
  • 网站首页轮播图片链接提交百度站长平台
  • 网站淘宝客怎么做的加强网站政务服务建设方案
  • 邮箱类网站模板网页布局的几种方法
  • 网站怎么做外部链接注册城乡规划师教材
  • 网站设计的优化设置wordpress网页私有
  • 绵阳公司商务网站制作网站建设 合同
  • 有赞支付 wordpress盐城seo
  • 深圳外贸网站建设企业互联网网站开发的未来方向
  • 建设项目网站备案a963中华室内设计官网
  • 做众筹网站需要什么条件咸阳网络推广
  • 服装销售网站设计与制作专业宣传片制作拍摄公司
  • 网站如何做百度百科营销推广公司案例
  • 专门做奢侈品的网站精湛的网站建设排行榜
  • 网站换服务器有影响吗seo 重庆
  • 网站作品欣赏推广网页怎么做的
  • 建设中的网站备案期间做什成都网站建设 公司