Je me suis référé à la page suivante. Exemple de communication HTTP Java (HttpClient)
Téléchargez et décompressez le fichier suivant. httpcomponents-client-4.5.6-bin.tar.gz
Http_post.java
// -----------------------------------------------------------------------
/*
Http_post.java
Oct/09/2018
*/
// -----------------------------------------------------------------------
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
// -----------------------------------------------------------------------
class Uri_get {
static String uri_post_proc(String uri,List<NameValuePair> params)
{
String res = "";
Charset charset = StandardCharsets.UTF_8;
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost request = new HttpPost(uri);
System.out.println
("Exécution de la demande "" + request.getRequestLine() + "」");
CloseableHttpResponse response = null;
try {
request.setEntity(new UrlEncodedFormEntity(params));
response = httpclient.execute(request);
int status = response.getStatusLine().getStatusCode();
System.out.println("État HTTP:" + status);
//État HTTP:200
if (status == HttpStatus.SC_OK){
res = EntityUtils.toString(response.getEntity(),charset);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
if (httpclient != null) {
httpclient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return res;
}
}
// -----------------------------------------------------------------------
public class Http_post
{
public static void main(String[] args)
{
String uri = "http://httpbin.org/post";
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("user","jiro"));
params.add(new BasicNameValuePair("password","123456"));
String res = Uri_get.uri_post_proc(uri,params);
System.out.println(res);
}
}
// -----------------------------------------------------------------------
Makefile
LIB=../httpcomponents-client-4.5.6/lib
HTTPCLIENT_JAR=.:$(LIB)/httpclient-4.5.6.jar:$(LIB)/httpcore-4.4.10.jar
Http_post.class: Http_post.java
javac -cp $(HTTPCLIENT_JAR) Http_post.java
clean:
rm -f *.class
Commande d'exécution
LIB=../httpcomponents-client-4.5.6/lib
HTTPCLIENT_JAR=.:$LIB/httpclient-4.5.6.jar:$LIB/httpcore-4.4.10.jar:$LIB/commons-logging-1.2.jar
#
java -cp $HTTPCLIENT_JAR Http_post
Résultat d'exécution
Exécution de la demande "POST http://httpbin.org/post HTTP/1.1」
État HTTP:200
{
"args": {},
"data": "",
"files": {},
"form": {
"password": "123456",
"user": "jiro"
},
"headers": {
"Accept-Encoding": "gzip,deflate",
"Connection": "close",
"Content-Length": "25",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Apache-HttpClient/4.5.6 (Java/10.0.2)"
},
"json": null,
"origin": "180.3.100.78",
"url": "http://httpbin.org/post"
}
Faire la même chose avec curl
$ curl -X POST http://httpbin.org/post -d 'user=jiro&password=123456'
{
"args": {},
"data": "",
"files": {},
"form": {
"password": "123456",
"user": "jiro"
},
"headers": {
"Accept": "*/*",
"Connection": "close",
"Content-Length": "25",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/7.61.1"
},
"json": null,
"origin": "180.3.100.78",
"url": "http://httpbin.org/post"
}
Voici un exemple de Get. Comment utiliser Java HttpClient (Get)
Recommended Posts