首页 > 其他分享 >HttpClient 总是被添加traceparent 请求头

HttpClient 总是被添加traceparent 请求头

时间:2024-04-19 16:35:52浏览次数:22  
标签:currentActivity request Headers 添加 Activity traceparent HttpClient

最近在项目中发现,HttpClient中调用某Api总是出现403的异常,自己使用postman 调用即没有问题,经排查是HttpClient 会自动添加traceparent请求头

Accept-Encoding: gzip
User-Agent: Firefox/5.0 (Linux 3.4; rv:14.0) Gecko/20100101 Firefox/91.0
traceparent: 00-274628f3ce14109d06680c90e8cc19ca-42e0b82e7d106403-00
Content-Type: application/x-www-form-urlencoded
Content-Length: 160

原因是:在HttpClient 调用SendAsync 时,如果Activity的IdFormat  等于ActivityIdFormat.W3C 就会添加traceparent参数

代码来源:https://github.com/dotnet/runtime/blob/release/5.0/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs#L286

private static void InjectHeaders(Activity currentActivity, HttpRequestMessage request)
{
    if (currentActivity.IdFormat == ActivityIdFormat.W3C)
    {
        if (!request.Headers.Contains(DiagnosticsHandlerLoggingStrings.TraceParentHeaderName))
        {
            request.Headers.TryAddWithoutValidation(DiagnosticsHandlerLoggingStrings.TraceParentHeaderName, currentActivity.Id);
            if (currentActivity.TraceStateString != null)
            {
                request.Headers.TryAddWithoutValidation(DiagnosticsHandlerLoggingStrings.TraceStateHeaderName, currentActivity.TraceStateString);
            }
        }
    }
    .....
}

所以这里把Activity.Current=null即可

Activity.Current = null;
var response = await _httpClient.PostAsync("your url", content);

参考文献:c# - Remove TraceParent header from HttpClient requests - Stack Overflow

标签:currentActivity,request,Headers,添加,Activity,traceparent,HttpClient
From: https://www.cnblogs.com/mtyh/p/18146245

相关文章

  • vue 给不同组件数据添加千分位符且保留两位小数
    方法一:使用filter过滤器的方法给普通元素添加千分位符且保留两位小数<template><divclass="app-container">{{obj|modifyObject}}{{obj1|modifyObject}}</div></template><script>exportdefault{components:{},data()......
  • 添加行政代码,pyecharts点击省地图,下钻到该省并且显示数据
    1.pyecharts点击省地图,下钻到该省并且显示数据容易出现的问题:1.那就是数据怎么放到图中辣。。摸索挺久的。2.特别注意在放数据到地图中的时候,数值记得转化,卡好久没出数据就是以为没有强制转为数字类型入转为int(xxxx)3.给地图放入数据规范为北京市,天津市,广东省,香港特别行政区......
  • 手动给docusaurus添加一个搜索
    新版博客用docusaurus重构已经有些日子了,根据docusaurus的文档上也申请了Algolia,想一劳永逸的解决博客的搜索问题。但是流水有意,落花无情。algolia总是不给我回复,我只能对着algolia的申请页面仰天长叹。正常情况的申请按照docusaurus官方文档上说的,当我们需要搜索的时候,打开ht......
  • EAS_DEP添加动态控件,在代码中获取DEP扩展控件
    1.在编辑界面onload的方法前置事件添加脚本//把动态控件传递到代码中varcomponents=newjava.util.HashMap();components.put("prmtassureAmountAccount",pluginCtx.getKDBizPromptBox("prmtassureAmountAccount"));components.put("prmtassureInterestAccount",......
  • 使用Maps SDK添加本地slpk
    SceneViewm_sceneView;publicvoidLoadSceneLayerFromSLPK(SceneViewsceneView,stringslpkPath){ if(!File.Exists(slpkPath)) thrownewException("文件不存在"); if(null==sceneView.Scene) CreateScene(sceneView); Uritreespk=newSystem.Uri......
  • 在博客园平台为博客自动化添加目录
    一、效果预览二、操作方法在设置-页脚HTML代码中添加如下代码:<scriptlanguage="javascript"type="text/javascript">//生成目录索引列表//ref:http://www.cnblogs.com/wangqiguo/p/4355032.html//modifiedby:zzqfunctionGenerateContentList(){varmainC......
  • 海康威视添加NAS存储
    1、关闭防火墙iptables-Fsetenforce0systemctlstopfirewalldsystemctldisablefirewalld2、创建目录mkdir-p/data/HaiKangData3T3、格式化硬盘mkfs.xfs/dev/sdb-f4、挂载blkidvim/etc/fstabUUID="5faf3a9b-fc2a-483b-a3ae-f0e00717a233/data/HaiKangData3T......
  • bat中检查系统版本并添加系统变量
    bat中检查系统版本并添加系统变量补丁包中升级nodejs​版本时,需要检查下操作系统版本,如果低于Windows8.1​需要添加系统变量NODE_SKIP_PLATFORM_CHECK​@echoofffor/f"tokens=1,2,3,4"%%iin('ver')do(setver_temp=%%l)setver_major=%ver_temp:~0,2%se......
  • bat中检查系统版本并添加系统变量
    bat中检查系统版本并添加系统变量补丁包中升级nodejs​版本时,需要检查下操作系统版本,如果低于Windows8.1​需要添加系统变量NODE_SKIP_PLATFORM_CHECK​@echoofffor/f"tokens=1,2,3,4"%%iin('ver')do(setver_temp=%%l)setver_major=%ver_temp:~0,2%se......
  • mysql8.0的root用户无了,添加root用户
    修改配置文件,跳过登陆验证sudovim/etc/mysql/mysql.conf.d/mysqld.cnf添加root用户usemysql;insertintouser(User,authentication_string,ssl_cipher,x509_issuer,x509_subject)values('root','','','','');添加权限updateuser......