J'essaie de me connecter à une API SOAP à l'aide de C #. L'API que j'utilise insiste sur le fait que je dois authentifier chaque appel d'API avec un jeton OAuth. J'ai implémenté le système OAuth et obtenu le jeton dont j'avais besoin, mais je ne suis pas sûr de savoir comment l'ajouter à l'appel SOAP que je passe. Donc je trid quelque chose comme ça
var soapClient = new ReturnClient();
soapClient.ClientCredentials.UserName.UserName = "MyToken";
soapClient.ClientCredentials.UserName.Password = "MyToken";
var rrr = new RetrieveReturnRequest {RetrieveReturnRequestWrapper = xElem2};
var response = soapClient.RetrieveReturn(rrr);
Mais cela ne fonctionne pas et jette System.ServiceModel.CommunicationException:
. Quelqu'un peut-il indiquer quelle est la bonne manière d'authentifier un appel SOAP avec Access Token
Réponses:
1 pour la réponse № 1En règle générale, lorsque vous utilisez OAuth, vous devez transmettre le "jeton" à l'aide d'un en-tête HTTP. Pour OAuth2 et un jeton porteur, vous devrez le transmettre dans le Authorization
En-tête HTTP.
requestMessage.Headers["Authorization"] = "Bearer TOKEN_VALUE_HERE";
Regarde ça lien pour plus de détails sur la manière de passer un en-tête HTTP dans un client SOAP.