2010-03-13 4 views
3

Je peux établir une connexion en utilisant HttpUrlConnection. mon code ci-dessous.comment passer les paramètres à l'urlconnection dans java/android?

client = new DefaultHttpClient(); 
URL action_url = new URL(actionUrl); 
conn = (HttpURLConnection) action_url.openConnection(); 
conn.setDoOutput(true); 
conn.setDoInput(true); 
conn.setRequestProperty("userType", "2"); 
conn.setRequestProperty("Content-Type", 
"application/x-www-form-urlencoded"); 
conn.setRequestMethod(HttpPost.METHOD_NAME); 
DataOutputStream ds = new DataOutputStream(conn.getOutputStream()); 
String content = "username=username1&password=password11"; 
Log.v(TAG, "content: " + content); 
ds.writeBytes(content); 
ds.flush(); 
ds.close(); 
InputStream in = conn.getInputStream();//**getting filenotfound exception here.** 
BufferedReader reader = new BufferedReader(
       new InputStreamReader(in)); 
StringBuilder str1 = new StringBuilder(); 
String line = null; 
while ((line = reader.readLine()) != null) { 
str1.append(line); 
Log.v(TAG, "line:" + line); 
} 
in.close(); 
s = str1.toString(); 

obtenir l'exception filenotfound. Je ne sais pas pourquoi?

autre me donner quelques suggestions pour passer le paramètre de nom d'utilisateur et passwrod à l'url par code ..

+0

Aide-t-il à fermer le flux de sortie uniquement après avoir lu le flux d'entrée? – Thomas

Répondre

7

Le HTTPClient offre un moyen d'accéder beaucoup plus simple ressources http, quand tout ce que vous voulez faire est de chercher le corps repsonse:

HttpGet httpGet = new HttpGet("http://domain.com/path?var1=bla&var2=foo"); 
HTTPResponse reponse = httpClient.execute(httpGet); 
String responseBody = EntityUtils.toString(response.getEntity()); 
+0

ce code très utile. Je peux obtenir le htmlsource. mais pas de connexion avec mon paramètre. comment définir la classe d'action à la réponse http. – Praveen

+0

Essayez-vous d'utiliser l'authentification de base? Vous pourriez passer le nom d'utilisateur et le mot de passe comme ceci avant d'émettre votre demande. Nom d'utilisateurPasswordCredentials credentials = new Nom d'utilisateurPasswordCredentials (nom d'utilisateur, mot de passe); httpClient.getCredentialsProvider(). SetCredentials (AuthScope.ANY, informations d'identification); – Moritz

+0

avant d'émettre votre demande dans le sens avant HttpGet. droite? – Praveen

Questions connexes