Comment faire pour forcer WebRequest d'envoyer des en-tête d'Autorisation pendant le POST
Lors de l'utilisation de WebRequest pour envoyer un message, l'en-tête d'Autorisation n'est pas envoyé avec la demande, même si j'ai régler manuellement l'en-tête et jeu de PreAuthenticate de vrai, par exemple:
webRequest.Headers["Authorization"] = "OAuth oauth_consumer_key=bFPD...";
webRequest.PreAuthenticate = true;
À l'aide de Fiddler je peux voir que l'en-tête d'Autorisation n'est pas envoyé. Le site cible (Twitter) renvoie un 400 (Bad request) plutôt que d'un 401 (Non autorisé), qui est donc la mauvaise défi nécessaire pour WebRequest pour envoyer les données d'Autorisation. Pour plus d'informations, le contenu renvoyé est:
{"errors":[{"message":"Bad Authentication data","code":215}]}
Alors, comment puis-je contourner ce problème? Comment puis-je la force WebRequest pour envoyer le avec l'Autorisation de la demande initiale? Notez que les données d'autorisation n'est pas l'Authentification de Base, c'est plutôt une OAuth chaîne.
Grâce
- Voir cette autre question.
Vous devez vous connecter pour publier un commentaire.
Voici ma solution. La valeur est dans la variable json.
myHttpWebRequest.PreAuthenticate = true;
ligne. Merci, semble ne pas fonctionner sans elle, même si l'on ajoute l'en-tête d'authentificationCela me rendait dingue, mais a finalement trouvé la réponse dans Ajouter des en-Têtes et les données de Postes de Détente/Requête HTTP en C#.
La solution pour moi a été l'ajout de l'en-Tête d'Autorisation AVANT la rédaction de la demande de flux.
Espère que cette aide.
Essayer, mais il devrait y avoir aucun espace entre l'autorisation des en-têtes.