J'essaie d'écrire un programme pour effectuer des tests automatisés sur mon webApp. Pour ce faire, j'ouvre une connexion en utilisant httpurlconnection.
Une des pages que j'essaye de tester effectue une redirection 302. Mon code de test ressemble à ceci: p> Alors, disons que Urltosend est http://www.foo.com/bar.jsp , et que cette page vous redirige vers faux. P> La redirection n'arrive jamais, et elle imprime l'URL d'origine. Toutefois, si je change de sortie de la ligne de connexion.Connect () avec un appel à connexion.getreesponsecode (), il fonctionne comme par magie. P> Pourquoi je vois ce comportement? Est-ce que je fais quelque chose de mal? P> Merci pour l'aide. P> P>
5 Réponses :
La méthode connect () code> crée simplement une connexion. Vous devez commettre la demande (en appelant
getinputtream () code>,
getresponsecode () code> ou
getResponsemessage () code>) pour la réponse à renvoyer et traitée. p>
Merci, cela semble être le cas!
Merci pour ça! Essayé de comprendre pourquoi les gens émettent GetinPuttream () et tels sans jamais appeler Connect (). Vous venez de clarifier cela pour moi.
Le Connect () La méthode est implémentée dans la classe URLConnection et n'est pas remplacé par le httpurlconnection classe. P>
La classe d'urlconnexion n'est pas au courant de HTTP, et ne devrait donc pas suivre la redirection HTTP, même si elle créait une connexion réelle. P>
Si vous voulez un comportement intrinsèque sur le protocole HTTP, vous souhaitez probablement vous tenir à des méthodes implémentées dans la classe HttpurlConnection, car la méthode GetResponsecode () est. P>
Ajoutez les éléments suivants dans votre Oncreate
StrictMode.ThreadPolicy policy = new StrictMode. ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);