package com.test.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
public class HttpUtils {
public static final String POST_URL = " http://localhost:8080/ddJihe";
public static String post(String action,StringjsonStr){
StringBuffer sbff = newStringBuffer("");;
try {
//发送请求
URL postUrl =new URL(POST_URL + action);
HttpURLConnectionconnection = (HttpURLConnection) postUrl.openConnection();
connection.setDoOutput(true);
//connection.setDoInput(true);
connection.setRequestMethod("POST");
//connection.setUseCaches(false);
//connection.setInstanceFollowRedirects(true);
//connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
PrintWriterout = new PrintWriter(connection.getOutputStream());
out.print("postData="+URLEncoder.encode(jsonStr,"UTF-8"));
out.flush();
out.close();
//接收数据
BufferedReaderreader = new BufferedReader(newInputStreamReader(connection.getInputStream()));
Stringline;
while((line =reader.readLine()) != null){
sbff.append(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return sbff.toString();
}
public static void main(String[] args) {
String action ="/jhJhxflTb/testHttp";
Map map = new HashMap();
map.put("name", "kevin");
JsonFactory jf = newJsonFactory();
StringWriter sw = newStringWriter();
ObjectMapper om = newObjectMapper();
try {
JsonGeneratorjg = jf.createGenerator(sw);
om.writeValue(jg,map);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("请求数据:\n"+sw.toString());
String res =HttpUtils.post(action, sw.toString());
System.out.println("响应数据:\n"+res);
System.out.println("响应数据提取:");
try {
Map m =om.readValue(res, Map.class);
System.out.println(m.get("creatorName"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
需要jackson-core-2.2.3.jar、jackson-databind-2.2.3.jar、jackson-annotations-2.2.3.jar包的支持