Вы можете использовать HTTP-клиент для отправки http-запроса, ссылаясь на содержимое запроса, захваченное Fiddle.
POST http://10.157.18.36:12000/Service1.svc HTTP/1.1 Content-Type: text/xml; charset=utf-8 SOAPAction: "http://tempuri.org/IService1/Add" Host: 10.157.18.36:12000 Content-Length: 161 Expect: 100-continue Accept-Encoding: gzip, deflate Connection: Keep-Alive
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><Add xmlns="http://tempuri.org/"><n1>34.23</n1><n2>80.54</n2></Add></s:Body></s:Envelope>
Служба WCF на основе спецификации веб-службы.
https://en.wikipedia.org/wiki/Web_service
Онииспользуйте мыльное сообщение, чтобы общаться друг с другом через протокол http / https.В этом случае мы могли бы использовать httpclient для имитации запроса.
Кроме того, wcf также мог бы публиковать сервис через http-режим, как веб-API Asp.net, структура стиля restful.
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api
Я сделал демо, желаю, чтобы это было полезно для вас.
IService1
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(ResponseFormat =WebMessageFormat.Json,RequestFormat =WebMessageFormat.Json)]
Double Add(double n1, double n2);
}
Service1.svc.cs
public class Service1 : IService1
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
}
Конфигурация.
<system.serviceModel>
<services>
<service name="WcfService1.Service1">
<endpoint address="" binding="webHttpBinding" contract="WcfService1.IService1" behaviorConfiguration="rest"></endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="rest">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" httpGetUrl="mex"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Клиент.
static void Main(string[] args)
{
HttpClient client = new HttpClient();
var result=client.GetStringAsync("http://localhost:9001/Service1.svc/add?n1=1.2&n2=3.2");
Console.WriteLine(result.Result);
}
Результат.
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.