HTTP请求方法(可直接copy至你的工具类,屡试不爽)
import com.alibaba.fastjson.JSONObject;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Iterator;
import java.util.Map;
public static String httpRequest(String url, String requestMethod, Map<String, String> headerMap, JSONObject contentMap) {
String result = "";
try {
URL restURL = new URL(url);
HttpURLConnection connection = (HttpURLConnection) restURL.openConnection();
connection.setRequestMethod(requestMethod);
connection.setDoInput(true);
connection.setDoOutput(true);
Iterator headerIterator = headerMap.entrySet().iterator();
while(headerIterator.hasNext()){
Map.Entry<String,String> elem = (Map.Entry<String, String>) headerIterator.next();
connection.setRequestProperty(elem.getKey(),elem.getValue());
}
OutputStreamWriter outer = null;
outer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
outer.write(contentMap.toString());
outer.flush();
outer.close();
InputStream ips = connection.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(ips, "UTF-8"));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = in.readLine()) != null) {
buffer.append(line);
buffer.append("\r\n");
}
in.close();
ips.close();
connection.disconnect();
result = buffer.toString();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
客户端调用代码
public static void main(String[] args) {
try {
String url = "http://localhost:8090/project/method";
Map<String, String> headersMap = new HashMap<String, String>();
headersMap.put("Content-Type","application/json; charset=utf-8");
headersMap.put("appmark","应用标识");
headersMap.put("sign","加密后的签名");
JSONObject contentMap = new JSONObject();
contentMap.put("IdCard","3216520000000000218");
contentMap.put("name","张三");
String post = HttpClientUtil.httpRequest(url,"PUT", headersMap, contentMap);
System.err.println(post);
} catch (Exception e) {
logger.error("HTTP请求异常,原因:"+e.fillInStackTrace());
}
}