我必须用Java编写最基本的POST客户端。 它将一些参数发送到证书服务器。 这些参数应该是JSON编码的
我有附加代码,如何编写params JSON编码?
String url = "http://x.x.x.x/CertService/revoke.php";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
String urlParameters = "serialnumber=C02G8416DRJM&authtoken=abc&caauthority=def&reason=ghi";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
答案 0 :(得分:1)
您可以将内容类型设置为application / json并发送json字符串吗?
<use>
答案 1 :(得分:0)
您在示例中发布的文字看起来像是app / x-www-form-urlencoded。要获取application / json编码,请将参数准备为映射,然后使用几个JSON编码库中的任何一个(例如Jackson)将其转换为JSON。
Map<String,String> params = new HashMap<>();
params.put("serialnumber", "C02G8416DRJM");
params.put("authtoken", "abc");
...
ObjectMapper mapper = new ObjectMapper();
OutputStream os = con.getOutputStream();
mapper.writeValue(os, params);
os.flush();
os.close();
...