Webサービスを初めて使用しています。最後に私がSOAPを扱ったのは、私が作成したレスポンス・オブジェクト/クラスごとにリクエストを送信し、応答を受け取ったたくさんのラッパー・クラスを作成したときでした。だから、私は特定のAPIリクエストを送信するオブジェクトを持っていました。同様に、オブジェクトとしての応答を保持するオブジェクトのセットもありました。そのため、サードパーティのAPIを利用することができました。Webサービス参照でAPI呼び出しに認証を渡す
誰かが私のところに来て、なぜwsdlとWebサービスを使用するだけではないと言いましたか?さて、今日、私は行って "Service Reference"を作成しました。私はこれが「プロキシクラス」と呼ばれるものであることがわかります。このインスタンスをインスタンス化し、wsdlからすべてのメソッドにアクセスできるようにします。
しかし、これは私に正式な質問を残します。私自身のクラスを手動で作成したときには、私が使っていたサードパーティのAPIが必要とするHttpリクエストとともに送信された署名、ユーザー名、パスワードなどのものにアクセスするようにプロパティを公開するクラスがありました。 API呼び出しを行う。
しかし、サービスリファレンスを使用すると、カスタムクラスで行ったように、この情報をどのように渡すことになりますか?たとえば、私はPayPal APIを使って作業するつもりです。それは署名とユーザー名とパスワードのような情報のいくつかの他の部分を送信する必要があります。
// 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);
どのようにすれば、メソッド呼び出しごとにWebサービス参照を使用する際にユーザー名、パスワード、署名などを渡すことができますか?メソッドのパラメータとして指定するだけで簡単ですか、プロキシクラスオブジェクトの.Credentialsと.URLメソッドを使用しますか?それは私のように見える資格情報は、Windows資格情報を意味するが、私は間違っている可能性がありますそれはそれに限定されていますか、それを使用して、PayPalが各メソッド呼び出し/ APIリクエストで必要とするヘッダ値を指定できますか?
あなたはこれをWCFに切り替えるでしょうか? –
いいえ私たちはWCFを使用していません – PositiveGuy
そして、私はこれを開いていたことが分かりませんでした。ここに答えがありました。あなたから! http://stackoverflow.com/questions/1202074/using-web-service-or-web-service-reference – PositiveGuy