最近项目中需要联调第三方接口,因此写了一个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; }