Мне нужно вызвать внешний веб-сервис SOAP через HTTP.
У меня есть файл WSDL и я добавил его в Visual Studio через «Добавить ссылку на сервис».Затем Visual Studio добавила несколько файлов, в справочном файле я могу найти это:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="Service.IService")]
public interface IService {
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService/Function", ReplyAction="http://tempuri.org/IService/FunctionResponse")]
namespace.Service.ExecuteFunctionResponse ExecuteFunction(namespace.Service.FunctionRequest request);
}
Кроме того, асинхронная версия этого вызова и объекты для отправки получения и т. Д.
Чтобы позвонить в службу, я добавил следующий код:
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("the address");
serviceChannel = new ServiceClient(binding, endpointAddress).ChannelFactory.CreateChannel();
Response response = serviceChannel.ExecuteFunction(new Request(...));
Это приводит к тому, что я получаю исключение, метод ошибки 405. Не разрешен.
Таким образом, я должен использовать HTTP-запрос GET вместоPOST-запрос по умолчанию.Но я не могу найти, где это можно изменить с помощью этого способа работы.
Итак, где я могу установить метод HTTP для этого вызова веб-службы?