RestSharp - L'en-tête d'autorisation ne parvient pas au service REST WCF
Je suis en train d'appeler un hébergés localement WCF REST service via HTTPS avec authentification basique.
Cela fonctionne, et l'en-tête d'Autorisation vient thru est très bien et tout est heureux:
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
var request = (HttpWebRequest)WebRequest.Create("https://localhost/MyService/MyService.svc/");
request.Method = "GET";
request.ContentType = "application/json";
request.Headers.Add(
System.Net.HttpRequestHeader.Authorization,
"Basic " + this.EncodeBasicAuthenticationCredentials("UserA", "123"));
WebResponse webResponse = request.GetResponse();
using (Stream webStream = webResponse.GetResponseStream())
{
if (webStream != null)
{
using (StreamReader responseReader = new StreamReader(webStream))
{
string response = responseReader.ReadToEnd();
}
}
}
Lorsque j'essaie d'utiliser RestSharp cependant, l'en-tête d'Autorisation ne vient jamais thru sur la demande:
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
var credentials = this.EncodeBasicAuthenticationCredentials("UserA", "123");
var client = new RestSharp.RestClient("https://localhost/MyService/MyService.svc/");
var restRq = new RestSharp.RestRequest("/");
restRq.Method = Method.GET;
restRq.RootElement = "/";
restRq.AddHeader("Authorization", "Basic " + credentials);
var restRs = client.Execute(restRq);
Ce que je fais de mal avec le RestSharp méthode?
Je sais que le AddHeader méthode fonctionne parce que c':
restRq.AddHeader("Rum", "And Coke");
viendra par, uniquement "Autorisation" semble dépouillé/manquant.
source d'informationauteur Chris Hawkins
Vous devez vous connecter pour publier un commentaire.
au lieu de l'ajout de l'en-tête "manuellement" à faire ce qui suit:
J'ai utilisé milano de réponse pour obtenir mon REPOS appel de service à travailler (à l'aide de GET)
L'essentiel était de s'assurer qu'il y a un espace après le mot "Porteur", mais cela peut s'appliquer à n'importe quel type de token personnalisé en-tête d'autorisation
Vous devez utiliser ParameterType.HttpHeader paramètre: