Use HttpClient para chamar a interface de outros serviços e resolva o problema de usar caracteres ilegíveis chineses HttpClient

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.

おすすめ

転載: blog.csdn.net/qq_50801874/article/details/130921750