java HttpURLConnection传递键值对参数,表单参数
当表头设置参数类型为这个的时候,
conn.setRequestProperty(“Content-Type”,“application/x-www-form-urlencoded”);
如果参数用的是jsonstring的话,在请求中,参数会都跑到key中,而且不会自动识别key和value;
String data = requestParams;
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
//设置请求方式,请求超时信息
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length",String.valueOf(data.getBytes().length));
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
//设置运行输入,输出:
conn.setDoOutput(true);
conn.setDoInput(true);
//Post方式不能缓存,需手动设置为false
// conn.setUseCaches(false);
//获取输出流
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(),"UTF-8");
writer.write(data);
writer.flush();
writer.close();
将参数换成用string配合=&拼接成的数据就行;
比如需要name=‘123’,age=13
需要拼接string str = “name = 123&age=13”
然后直接str转成byte传进去就行
StringBuilder stringBuilder = new StringBuilder();
try {
stringBuilder.append("apiKey="+ URLEncoder.encode(apiKey,"UTF-8"));
stringBuilder.append("&jobNum="+ URLEncoder.encode(tv_job_num.getText().toString(),"UTF-8"));
stringBuilder.append("&prodOrderNum="+ URLEncoder.encode(prodOrderNum,"UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
// jsonObject.put(“jobNum”,tv_job_num.getText().toString());
// jsonObject.put(“jobNum”,“HX2619”);
// jsonObject.put(“prodOrderNum”,prodOrderNum);
// jsonObject.put(“apiKey”,apiKey);
// return jsonObject.toJSONString();
return stringBuilder.toString();