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

Comment envoyer des requêtes HTTP POST en Java ?

DDD
Libérer: 2024-12-28 14:56:16
original
344 Les gens l'ont consulté

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();
Copier après la connexion

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");
Copier après la connexion

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");
Copier après la connexion

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();
Copier après la connexion

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();
Copier après la connexion

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.
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal