Comment Définir HttpPost les en-Têtes de la Requête d'un Client en Java Android
J'ai de la difficulté à obtenir l'Apache HttpClient pour envoyer correctement un HttpPost en-Tête.
Je n'ai pas de problèmes d'envoi de paires nom /valeur et autres joyeusetés, mais chaque fois que j'ai mis ou ajouter un POST-Tête, elle disparaît lorsque la demande en est faite.
J'ai essayé les deux setHeader et addHeader, ainsi que d'essayer les deux à la fois.
Voici mon code:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://posttestserver.com/post.php");
httppost.setHeader("Authorization: Bearer", accessToken);
httppost.addHeader("Authorization: Bearer", accessToken);
Log.d("DEBUG", "HEADERS: " + httppost.getFirstHeader("Authorization: Bearer"));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httppost, responseHandler);
Log.d("DEBUG", "RESPONSE: " + responseBody);
En outre, le débogage de déclaration avant que la requête est exécutée imprime le bon en-tête, donc je sais qu'il est ajouté, puis vient de tomber plus tard.
Toute aide serait grandement appréciée!
EDIT: C'est tous en cours d'exécution à l'intérieur d'une AsyncTask si ce qui compte. Je ne le pense pas car il y a un NetworkOnMainThread exception levée autrement, mais j'ai pensé qu'il pourrait être utile de mentionner.
OriginalL'auteur Solder Smoker | 2013-02-01
Vous devez vous connecter pour publier un commentaire.
Essayez de vous connecter au service dit votre les en-têtes HTTP et de capture (il suffit d'imprimer HTML) de la sortie. Au moins vous saurez si vos en-têtes sont vraiment perdu sur le chemin ou peut-être quelque chose d'autre.
Gemein. Probablement pas une solution, mais au moins nous avons rétréci les domaines possibles où le bug peut être.
OriginalL'auteur h22
Au moins une erreur dans votre code. Essayez plutôt ceci:
Qu'entendez-vous par la chute? Vous voyez une demande sans en-têtes sur le serveur?
Ouais, l'en-tête d'Autorisation est inexistants
Votre code semble bien pour moi (si vous faites le correctif ci-dessus).
Ouais c'est assez simple demande donc, je n'ai aucune idée de ce qui pourrait être mal avec elle, j'ai eu d'autres gens jeter un oeil trop et ils ne savent pas non plus...Merci bien
OriginalL'auteur jdb
Vous avez dit que l'en-tête n'est pas sur la réponse à l'une de vos réponses, juste pour préciser, les en-têtes de ne pas revenir sur la réponse, ils sont juste envoyé la demande au serveur. Une trace réseau ou fiddler session peut montrer de la demande et la réponse, et cela devrait vous donner une réponse définitive à cette question de savoir si elles sont supprimées ou pas.
OriginalL'auteur Westley
essayez d'utiliser
java.net.URLConnection.addRequestProperty(String field, String newValue)
http://developer.android.com/reference/java/net/URLConnection.html#addRequestProperty%28java.lang.String,%20java.lang.String%29
OriginalL'auteur invertigo
Personnellement, je préfère utiliser un autre methos pour définir correctement le http autorisation:
OriginalL'auteur StarsSky