http 请求协议功能开发(post方式)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27261867/article/details/79808165

最近项目中需要联调第三方接口,因此写了一个http通用接口如下:

public static String httpPost(String url, String param) throws IOException {
        // Post请求的url,与get不同的是不需要带参数
        URL postUrl = new URL(url);
        // 打开连接
        HttpURLConnection connection = (HttpURLConnection) postUrl
                .openConnection();
        // 设置是否向connection输出,因为这个是post请求,参数要放在
        // http正文内,因此需要设为true
        connection.setDoOutput(true);
        // Read from the connection. Default is true.
        connection.setDoInput(true);
        // Set the post method. Default is GET
        connection.setRequestMethod("POST");
        // Post cannot use caches
        // Post 请求不能使用缓存
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(true);
        // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
        // 进行编码
        connection.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded");
        // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
        // 要注意的是connection.getOutputStream会隐含的进行connect        connection.connect();
        DataOutputStream out = new DataOutputStream(connection
                .getOutputStream());
        out.writeBytes(param); 
        out.flush();
        out.close(); // flush and close
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        String line;
        String resultMsg = "";
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
            resultMsg = line;
        }
        reader.close();
        connection.disconnect();
        return resultMsg;
    }

展开阅读全文

没有更多推荐了,返回首页