在Java中发送HTTP POST请求 [英] Sending HTTP POST Request In Java

查看:140
本文介绍了在Java中发送HTTP POST请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们假设这个网址...

lets assume this URL...

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

(此处id需要在POST请求中发送)

(Here id needs to be sent in a POST request)

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

I want to send the id = 10 to the server's page.php, which accepts it in a POST method.

我如何从Java中做到这一点?

How can i do this from within Java?

我试过这个:

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

但我仍然无法弄清楚如何通过POST发送它

But I still can't figure out how to send it via POST

推荐答案

更新后的答案:



由于原始答案中的某些类已被弃用更新版本的Apache HTTP Components,我发布了此更新。

Updated Answer:

Since some of the classes, in the original answer, are deprecated in the newer version of Apache HTTP Components, I'm posting this update.

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

By the way, you can access the full documentation for more examples here.

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) {
    InputStream instream = entity.getContent();
    try {
        // do something useful
    } finally {
        instream.close();
    }
}



原始答案:



我建议使用Apache HttpClient。它更快更容易实现。

Original Answer:

I recommend to use Apache HttpClient. its faster and easier to implement.

PostMethod post = new PostMethod("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/

for more information check this url: http://hc.apache.org/

这篇关于在Java中发送HTTP POST请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆