Использование веб-службы с использованием POST вместо обычного маршрута WSDL.

Именно так мне в настоящее время удалось использовать конкретный веб-сервис Microsoft. Обратите внимание, что он расположен на HTTPS-сервере и требует, чтобы имя пользователя, пароль и файл .cerбыли установлены в «корневых центрах сертификации» операционной системы.

WSHttpBinding binding = new WSHttpBinding();

binding.Security.Mode = SecurityMode.TransportWithMessageCredential;
binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = true;
binding.Security.Message.AlgorithmSuite
  = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;
binding.Security.Message.EstablishSecurityContext = true;

EndpointAddress endpoint = new EndpointAddress("https://address.of.service");

//"GreatClient" was created for me automatically by running
//"svcutil.exe https://address.of.service?wsdl"
GreatClient client = new GreatClient(binding, endpoint);

//Username and password for the authentication. Notice that I have also installed
//the required .cer certificate into the system's "root certificate authorities".
client.ClientCredentials.UserName.UserName = "username";
client.ClientCredentials.UserName.Password = "password";

//Now I can start using the client as I wish.

Мой вопрос заключается в следующем: Как я могу получить всю необходимую информацию, чтобы я мог использовать веб-службу с прямым POST на https://address.of.serviceи как действительно ли я выполняю POST с С#? Я хочу использовать только POST, где я могу передать необработанные XML-данные с помощью POST напрямую https://address.of.serviceи получить результат в виде необработанных данных XML. Вопрос в том, что это за необработанные данные XML и как именно я должен отправить их с помощью POST?

( Цель этого вопроса: Причина, по которой я спрашиваю, заключается в том, что я хочу использовать эту службу, используя что-то, кроме C# и .NET (например, Ruby или Cocoa в Mac OS X). у меня нет возможности узнать, как это сделать, поскольку у меня нет простого в использовании «svcutil.exe» на других платформах для генерации необходимого кода для меня Вот почему я решил, что просто могу использование службы с использованием обычного POST позволит мне более легко использовать службу на других платформах.)

6
задан Enchilada 2 April 2012 в 20:29
поделиться