12
votes

Erreur d'authentification lors de l'utilisation httpbpost avec DEFAULTHTTPCLIPT sur Android

Je suis en cours d'exécution dans un étrange problème en utilisant HttpClient. J'utilise un DefaultHttpClient () avec HttpPost. J'utilisais HttpGet avec succès à 100%, mais maintenant essayer de passer à HttpPost comme l'API REST J'utilise des paramètres veut POST plutôt que GET. (Uniquement pour certains appels d'API pourtant si je sais que les appels GET travaillaient bien si ce n'est pas un défaut de l'API).

De plus, j'ai essayé d'utiliser HttpPost sur un simple script php je l'ai écrit qui cherche un paramètre POST ' var » et fait écho à l'écran, en passant ces paramètres comme suit a bien fonctionné: p>

Authentication error: Unable to respond to any of these challenges: {}


4 commentaires

Votre URL ne devrait-il pas commencer par HTTPS pour un début. Ensuite, s'il s'agit de HTTPS, il sera probablement sécurisé avec un certificat ou un autre défi d'authentification - comme indiqué dans le message d'erreur.


Je viens de mettre cette URL à titre d'exemple mais oui, cela devrait. Mais comme je l'ai dit, j'ai essayé de httpport mon propre script qui allait bien et si j'essayais à httpport une partie non-https de l'API comme dans leur exemple appelé à une page HTTP non https, je n'ai eu l'erreur que si je suis passé la nomeuuepairs , si je n'avais pas eu l'erreur d'authentification.


Pouvez-vous nous montrer votre constructeur httpclient?


Il est juste httpclient httpclient = nouveau défaulthttapclient (); Mais j'ai essayé de la configurer pour SSL à l'aide du code ici: Thinkandroid.WordRress.com/2009/12/31/... Mais j'ai toujours la même erreur.


4 Réponses :


3
votes

Ne devez-vous pas déclarer le port et le protocole? Je suis juste en train de basculer ce code alors s'il vous plaît, ne vous fâchez pas si cela ne compilait pas correctement. En outre, je fournis habituellement une nom usernamePasswordCredentials à mes crétinités () mais j'imagine que c'est la même chose. XXX

Plus d'infos sur SetCredentials ici .


3 commentaires

Hmm ok je vais avoir une allée, je suis tout simplement principalement déconcerté parce que l'utilisation de httpbet a fonctionné bien (les trucs non-https), puis soudain, il parle de l'authentification lorsque j'utilise httpport. Merci je vais essayer cela.


HMM qui ne semble pas fonctionner non plus, mais merci d'avoir essayé. Je suppose que je contacterai les auteurs de l'API et je vois ce qu'ils suggèrent. Merci Anwyay.


Désolé d'entendre ça. Je vois que vous avez affiché l'API qui montre évidemment HTTPS est pris en charge, alors je ne suis pas sûr de quoi dire. J'ai construit une bibliothèque Java qui permet aux utilisateurs de se connecter aux bases de données Couchdb via HTTP ou HTTPS qui utilise beaucoup de mêmes concepts. Si cela aide, vous pouvez manquer à travers elle ici .



12
votes
Erreur d'authentification

Impossible de Répondre à l'un de ces défis: {}

Ce message d'erreur signifie que le serveur a répondu avec le code d'état mais n'a pas fourni un seul défi d'autorisation ( www-authentifier en-tête), ce qui le rend impossible pour httpclient pour récupérer automatiquement de l'échec de l'authentification.

L'application la plus probable s'attend à un peu de références sur le formulaire HTML enfermé dans la demande de post HTTP.


0 commentaires

3
votes

Voici comment j'ai fini avec un problème similaire: XXX

Merci à Ryan pour la bonne direction.


0 commentaires

1
votes

Ne pas spécifier une URL Callback forte> pour mon application Twitter a abouti à la même erreur pour moi:

Authentication error: Unable to respond to any of these challenges: {oauth=WWW-Authenticate: OAuth realm="https://api.twitter.com"}


0 commentaires