2011-03-01 2 views
5

Je veux envoyer une requête POST (comme formulaire html) et le fichier get (en-tête HTTP: "Content-Disposition: pièce jointe; filename =" monfichier.pdf "). Pouvez-vous me aiderComment envoyer une requête POST et obtenir une réponse de fichier?

+0

Etes-vous sûr de vouloir dire Java et pas Javascript? – Mikhail

+0

Question trop vague. S'il vous plaît décrire votre environnement. Est-ce une application basée sur un navigateur? Avez-vous des problèmes avec la servlet? – rahulmohan

Répondre

11

Votre meilleure option est probablement d'utiliser une bibliothèque tierce partie, comme HttpClient ou HTMLUnit.

Si vous préférez faire avec l'API standard, il est pas si compliqué que ça.

// Construct data 
String data = URLEncoder.encode("key1", "UTF-8") + "=" + 
           URLEncoder.encode("value1", "UTF-8"); 

data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + 
           URLEncoder.encode("value2", "UTF-8"); 

// Send data 
URL url = new URL("http://hostname:80/cgi"); 
URLConnection conn = url.openConnection(); 
conn.setDoOutput(true); 
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
wr.write(data); 
wr.flush(); 

// Get the response 
BufferedReader rd = new BufferedReader(
     new InputStreamReader(conn.getInputStream())); 

String line; 
while ((line = rd.readLine()) != null) { 
    // Process line... 
} 
wr.close(); 
rd.close(); 
Questions connexes