Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中发送带有post参数的简单http post请求_Java_Http_Post_Request - Fatal编程技术网

如何在java中发送带有post参数的简单http post请求

如何在java中发送带有post参数的简单http post请求,java,http,post,request,Java,Http,Post,Request,我需要一个发送http post请求的简单代码示例,其中包含从表单输入获取的post参数。 我已经找到了ApacheHttpClient,它有非常好的API和很多复杂的例子,但是我找不到一个简单的例子来发送带有输入参数的HTTPPOST请求并获得文本响应 更新:我对ApacheHttpClient v.4.x感兴趣,因为3.x已被弃用。 使用PostMethodWebRequest和setParameter方法我从Andrew Gertig的Android项目中提取了这段代码,我在应用程序中使用

我需要一个发送http post请求的简单代码示例,其中包含从表单输入获取的post参数。 我已经找到了ApacheHttpClient,它有非常好的API和很多复杂的例子,但是我找不到一个简单的例子来发送带有输入参数的HTTPPOST请求并获得文本响应

更新:我对ApacheHttpClient v.4.x感兴趣,因为3.x已被弃用。


使用PostMethodWebRequest和setParameter方法

我从Andrew Gertig的Android项目中提取了这段代码,我在应用程序中使用了这段代码。它允许您执行HTTPost。如果我有时间,我会创建一个POJO示例,但希望您能够剖析代码并找到所需内容

阿沙克


显示了一个非常简单的示例,您可以在其中从Html页面进行发布,servlet处理该页面并发送文本响应


以下是使用ApacheHttpClient API的HTTPPOST示例代码

import java.io.InputStream;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;


public class PostExample {
    public static void main(String[] args){
        String url = "http://www.google.com";
        InputStream in = null;

        try {
            HttpClient client = new HttpClient();
            PostMethod method = new PostMethod(url);

            //Add any parameter if u want to send it with Post req.
            method.addParameter("p", "apple");

            int statusCode = client.executeMethod(method);

            if (statusCode != -1) {
                in = method.getResponseBodyAsStream();
            }

            System.out.println(in);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

使用Apache HttpClient的HTTP POST请求示例v.4.x

HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("param1", param1Value, ContentType.TEXT_PLAIN);
builder.addTextBody("param2", param2Value, ContentType.TEXT_PLAIN);
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
HttpResponse response = httpClient.execute(httpMethod);

谢谢你,苏米特。我需要这样的示例,但您的示例使用的是ApacheHttpClient v。3.x,这是不推荐使用的(即使我在他们的下载页面中也找不到3.x版本的JAR)。现在他们建议使用HttpClient v.4.1,它有不同的API,但我不知道如何将post参数与此API结合起来。我找到了HttpClient v.3的JAR,它对我很有用,但无论如何,我想知道为什么用v发送简单的post请求如此复杂。在java in general.hi中,是否可以添加接受文件对象的附加参数?谢谢
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("param1", param1Value, ContentType.TEXT_PLAIN);
builder.addTextBody("param2", param2Value, ContentType.TEXT_PLAIN);
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
HttpResponse response = httpClient.execute(httpMethod);