在日常开发过程中,对接第三方难免需要通过javaAPI发送各种请求去请求数据,这里给一个发送http请求携带body参数、head参数。
/**
* post请求携带body参数
* @param serverURL
* @param params body参数 application/json
* @return
*/
public static String sendPostBody(String serverURL, String params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
InputStream is = null;
OutputStreamWriter writer = null;
try{
StringBuffer sbf = new StringBuffer();
String strRead = null;
URL url = new URL(serverURL);
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");//请求post方式
connection.setDoInput(true);
connection.setDoOutput(true);
//header内的的参数在这里set
connection.setRequestProperty("geoToken", "token");
connection.setRequestProperty("Content-Type", "application/json;charset=\"UTF-8\"");
connection.connect();
writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
//body参数放这里
writer.write(params);
writer.flush();
is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
is.close();
writer.close();
connection.disconnect();
String results = sbf.toString();
System.out.println("str_base>>>:"+results);
return results;
}catch (IOException e){
e.printStackTrace();
return "";
}finally {
try {
if(connection != null){
connection.disconnect();
}
if(reader != null){
reader.close();
}
if(is != null){
is.close();
}
if(writer != null){
writer.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}