Ao digitar o código recentemente, é necessário chamar a interface de outros serviços, principalmente através do HttpClient para chamar a interface, aqui está o método de chamada e a solução para o problema chinês ilegível.
método de configuração
Não há muito a dizer, basta ir ao código
public static String doPostJson(String url, String jsonstr, String charset) {
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
try {
httpClient = new SSLClient();
httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json");
StringEntity se = new StringEntity(jsonstr,"UTF-8");
se.setContentType("text/json");
se.setContentEncoding(new BasicHeader("Content-Type", "application/json"));
httpPost.setEntity(se);
HttpResponse response = httpClient.execute(httpPost);
if (response != null) {
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity, charset);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
serviço de interface de chamada
HashMap<String,Object> params = new HashMap<>();
params.put("aae019",dto.getAae019());
params.put("aac002",dto.getAac002());
params.put("aac003",dto.getAac003());
params.put("aae005",dto.getAae005());
params.put("cb222",dto.getCb222());
String acceptRes = HttpClientUtil.doPostJson("https://ggfw.gon.cn/web/xjy/external/modifyUserInfo", JSON.toJSONString(params), "UTF-8");
String message = JSONObject.parseObject(acceptRes).getString("type");
Primeiro, encapsular o conjunto de parâmetros do mapa e chamar a interface por meio do método de configuração agora. O primeiro parâmetro é o caminho da interface de serviço, o segundo parâmetro é uma string e o terceiro é o formato de codificação. acceptRes retorna o resultado para a chamada de interface e retorna uma string após a chamada ser bem-sucedida.
Resolver caracteres chineses distorcidos
Eu também mexi com esse código ilegível chinês por um tempo e pesquisei na Internet e, no final, foi relativamente simples e resolvi esse problema com sucesso.
StringEntity se = new StringEntity(jsonstr,"UTF-8");
A chave para este problema está aqui. No método de configuração, ao criar uma StringEntity, dois parâmetros precisam ser passados. O primeiro é um parâmetro de string e o segundo é passar no formato de codificação. Somente uma simples adição aqui Ele pode resolver o problema de chamar outras interfaces de serviço por meio do HttpClient para passar parâmetros contendo caracteres chineses distorcidos.