在 Java 中发送 HTTP POST 请求

本教程将介绍在 Java 中发送 HTTP POST 请求的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

在 Java 中发送 HTTP POST 请求 教程 第1张

问题描述

让我们假设这个 URL...

http://www.example.com/page.php?id=10

(这里的id需要在POST请求中发送)

我想将 id = 10 发送到服务器的 page.php,它以 POST 方法接受它.

我怎么在 Java 中做到这一点?

我试过这个:

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

但我仍然不知道怎么通过 POST 发送它

推荐答案

更新答案:

由于原始答案中的某些类在较新版本的 Apache HTTP 组件中已弃用,因此我发布此更新.

顺便说一句,您可以访问完整文档以获取更多示例 这里.

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

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

//Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
 try (InputStream instream = entity.getContent()) {
  // do something useful
 }
}

原答案:

我推荐使用 Apache HttpClient.它更快更容易实现.

HttpPost post = new HttpPost("http://jakarata.apache.org/");
NameValuePair[] data = {
 new NameValuePair("user", "joe"),
 new NameValuePair("password", "bloggs")
};
post.setRequestBody(data);
// execute method and handle any error responses.
...
InputStream in = post.getResponseBodyAsStream();
// handle response.

有关更多信息,请查看以下网址:http://hc.apache.org/

好了关于在 Java 中发送 HTTP POST 请求的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。