HttpClient向服务器接口 传递 json参数,参数要做特殊的处理,否则报错。
错误原因是:HttpGet或 HttpPost都不能传包含 " 、“{"、"}"这样的参数,需要对特殊字符进行转义,把 " 转成%22,把 { 转成%7b,把 } 转成%7d
干脆直接自己 replaceAll 算了,两次:
“{” => %7B
“}” => %7D
对了,URLEncode从?之后的参数开始,不要把域名和路径也放进去了。
String x = IOUtility.read2String("d:/pushlog.txt");
x = URLEncoder.encode(x,"UTF-8");
x = x.replace(" ", "").replace("\"", "%22");
x = x.replace("{", "%B").replace("}", "%7D");
String uri = "http://10.131.80.148:8080/receive/log?data=" + x;
HttpGet get = new HttpGet(uri);
System.out.println(get);
HttpResponse res = client.execute(get);;
[java]