Asp.net Core 调用Web Service

1.引言

.net core 使用自动生成的代理类调用soap 协议的WebService的方式。

2.问题描述

在core中如何调用Web Service

3.解决方案

  1. 使用Svcutil.exe生成代理类。命令如下:

Svcutil.exe /out: 磁盘目录 Url

2.用call WCF的方法调用Web Service,代码如下:

 var binding = new BasicHttpBinding();
 var endpoint = new EndpointAddress(url);
 var channelFactory = new ChannelFactory<IngrianServiceSoap>(binding, endpoint);
 var serviceClient = channelFactory.CreateChannel();

至此Call Web Service 方式完成。

4.增加自定义header

自定义header有两种方式:

using (new OperationContextScope((IContextChannel)serviceClient))
{
  var requestProp = new HttpRequestMessageProperty();
  OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestProp;
  requestProp.Headers["HeaderName"] = "header value"
  return serviceClient.DoSomething(request);
}

使用behavior方式:

serviceClient.Endpoint.EndpointBehaviors.Add(new ProxyBehavior());

其中ProxyBehavior为我们自己添加的类,在里面抓取HttpRequestMessage,即可增加自定义header。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。