在读取json形式报文时,在controller中用request.getParameter无法获取到报文中的具体参数
json形式报文:
{
"parent_manage_com": "8611"
}
controller中获取方式:
String manageCom = request.getParameter("parent_manage_com");
之前的test测试类 发现这种方式不行!!!!:
private static String uri="/。。/。。/managecom/query.do";//信息查询接口
private static String codiInfoUrl = "http:。。。。。。。/。。"+uri;
public static void main(String[] args) {
testCodeInfo();
}
public static void testCodeInfo() {
String path="D:/测试JSON";
String jsonPath = path+ "/讲师.json";
String reqStr = IOUtil.readStringFromFile(new File(jsonPath),"utf-8");
//也可以用拼json串的形式
//String reqStr = "{"
// +"\"parent_manage_com\": \"8611\""
//+ "}"
String result = HttpUtil.post(codiInfoUrl, reqStr);
System.out.println(result);
}
后来就换了一种方式,将json转换为对象放在map里:
public static void main(String[] arg) throws UnsupportedEncodingException{
/**
* 测试报文
*/
String path="D:/测试JSON";
String jsonPath = path+ "/讲师.json";
String json = IOUtil.readStringFromFile(new File(jsonPath),"utf-8");
String url ="http://。。。。。。/。。。。/query.do";
Map<String,String> pMap = new HashMap<String,String>();
pMap.put("parent_manage_com", "8611");
// String timestamp = String.valueOf(System.currentTimeMillis());
// pMap.put("timestamp", timestamp);//交易时间戳,格林威治时间,精确到毫秒。
// String nonce = RandomStringUtils.randomAlphanumeric(20);
// pMap.put("nonce", nonce);//随机数,长度20,数字+字母
pMap.put("data", json);
// String linkStr = LinkUtil.getLinkString(pMap);//除去数组中的空值和签名参数,把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
// String signContent = "a12dadf_12asdfadsfaf213hzewangADq1da249jbb_10AF1As";//大童密钥
// String signature = MD5.sign(linkStr, signContent, "UTF-8");//需要签名的字符串+密钥 MD5加密 编码格式UTF-8
// pMap.put("signature", signature);
System.out.println("请求:"+json);
// System.out.println("json:"+json);
//访问内部
String reStr = HttpUtil.post(url, pMap);
//访问外网
// String reStr = HttpUtil.postByProxy(url, pMap);
System.out.println("返回结果:"+reStr);
}
这样就取到了!