Передача аутентификации вызовам API со ссылками на веб-сервис - PullRequest
0 голосов
/ 29 июля 2009

Я новичок в веб-сервисах. В последний раз я имел дело с SOAP, когда создал несколько классов-оболочек, которые отправляли запросы и получали ответы обратно по некоторым объектам / классам ответов, которые я создал. Поэтому у меня был объект для отправки определенных запросов API, а также набор объектов для хранения ответа как объекта, чтобы я мог использовать этот сторонний API.

Тогда кто-то пришел ко мне и сказал, почему бы просто не использовать wsdl и веб-сервис. Итак, сегодня я пошел и создал «Справочник услуг». Я вижу, что это то, что называется «прокси-класс». Вы просто создаете экземпляр этого, и тогда у вас есть доступ ко всем методам из wsdl.

Но это оставляет меня с вопросами об аутентификации. Назад, когда я создавал свои собственные классы вручную, у меня был класс, который выставлял свойства, которые я бы затем устанавливал для доступа к таким вещам, как подпись, имя пользователя, пароль, которые отправлялись вместе с запросом Http, которые требовались любым сторонним API, который я использовал для совершать вызовы API.

Но тогда, используя Справочник по услугам, как я мог бы передать эту информацию точно так же, как я это делал в своих пользовательских классах? Например, я собираюсь работать с API PayPal. Это требует, чтобы вы отправили подпись и несколько других частей информации, таких как имя пользователя и пароль.

// Determins if API call needs to use a session based URI
                string requestURI = UseAuthURI == true ? _requestURIAuthBased + aSessionID : _requestURI;

                byte[] data = XmlUtil.DocumentToBytes(doc);

                // Create the atual Request instance
                HttpWebRequest request = CreateWebRequest(requestURI, data.Length);

Итак, как передать имя пользователя, пароль, подпись и т. Д. При использовании ссылок на веб-службы для каждого вызова метода? Это так же просто, как указать его в качестве параметра для метода, или вы используете методы .Credentials и .URL вашего объекта прокси-класса? Мне кажется, учетные данные означают учетные данные Windows, но я могу ошибаться. Это ограничено этим или вы можете использовать это для указания тех требуемых значений заголовков, которые PayPal ожидает при каждом вызове метода / API-запросе?

1 Ответ

0 голосов
/ 30 июля 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...