解决.NET WebService引用后添加HTTP Header的问题
麻蛋,搜索了好久,找到的都是对soap header的操作,不是对WebService的HTTP Header的操作,这是两种不同的概念,平常我们发起的WebService请求走的都是http通信协议,POST方式的请求,请求体是发送对象的SOAP结构。算了直接上答案。只不过还是英语不好
http://stackoverflow.com/questions/897782/how-to-add-custom-http-header-for-c-sharp-web-service-client-consuming-axis-1-4
上面是源地址,貌似有两种方法,一种是排名第一的
添加一下代码:
1 2 3 4 5 6 | protected override System.Net.WebRequest GetWebRequest(Uri uri) { System.Net.WebRequest request = base .GetWebRequest(uri); request.Headers.Add( "myheader" , "myheader_value" ); return request; } |
老外真是,愣是不提供完整的demo,费了半天劲,实在找不到该插入那个地方啊,有木有,试遍了自动生成的Reference.cs里的任何位置,都不对,哪位大神指导的,还请指导一下。
第二种:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | static void Main( string [] args) { //wsAuth:就是自动生成的WebService服务 using (wsAuth.WsAuthenticationClient client = new wsAuth.WsAuthenticationClient()) { using (OperationContextScope scope = new OperationContextScope(client.InnerChannel)) { var httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[ "ws-lala" ] = "111" ; httpRequestProperty.Headers[ "ws-lala11" ] = "222" ; OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var cc = client.login( "tlzzu" , "123456" ); } } } |
亲测,第二种可用。
标签:
WebService
, http header
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?