Maison >Java >javaDidacticiel >Comment envoyer des requêtes HTTP POST en Java ?

Comment envoyer des requêtes HTTP POST en Java ?

DDD
DDDoriginal
2024-12-28 14:56:16361parcourir

How to Send HTTP POST Requests in Java?

Envoi d'une requête HTTP POST en Java

Pour transmettre des données à un script côté serveur, tel que "page.php", qui accepte les requêtes POST, suivez ces étapes :

Demande d'initialisation :

Instancier un objet URL et ouvrir un connexion :

URL aaa = new URL("http://www.example.com/page.php");
URLConnection ccc = aaa.openConnection();

Configuration POST :

Configurez la connexion pour autoriser la soumission des données POST :

ccc.setDoOutput(true);
ccc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

Encodage des paramètres de requête :

Convertir les paramètres de requête (par exemple, id=10) en un fichier codé chaîne de requête :

String data = "id=" + URLEncoder.encode("10", "UTF-8");

Transmission de données :

Écrire les données dans le flux de sortie de la connexion :

OutputStreamWriter wr = new OutputStreamWriter(ccc.getOutputStream());
wr.write(data);
wr.flush();

Gestion des réponses :

Obtenir et traiter les informations du serveur réponse :

BufferedReader br = new BufferedReader(new InputStreamReader(ccc.getInputStream()));
String response = br.readLine();

Réponse mise à jour :

Pour les programmeurs Java utilisant les composants HTTP Apache, la dernière méthode implique HttpClients et HttpPost. Les paramètres sont transmis sous forme de liste NameValuePair, codés dans un UrlEncodedFormEntity, puis soumis au serveur :

HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.a-domain.example/foo/");

List<NameValuePair> params = new ArrayList<>(2);
params.add(new BasicNameValuePair("param-1", "12345"));
params.add(new BasicNameValuePair("param-2", "Hello!"));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
    try (InputStream instream = entity.getContent()) {
        // Process the response here.
    }
}

Pour plus d'informations, consultez la documentation des composants HTTP Apache.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn