Java 使用 HttpClient 传递 UTF-8 编码参数
//创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建URIBuilder URIBuilder uriBuilder = new URIBuilder(System_Url.getOssDomain()+"/push/pushMessage.html"); //设置字符编码为UTF-8 uriBuilder.setCharset(Charset.forName("UTF-8")); //设置参数 uriBuilder.setParameter("pushFrequency","update"); uriBuilder.setParameter("categoryId",management.getId().toString()); uriBuilder.setParameter("categoryName",management.getName()); uriBuilder.setParameter("articleTitle",sysLaws.getLawsName()); //创建HttpGet对象,设置url访问地址 HttpGet httpGet = new HttpGet(uriBuilder.build()); CloseableHttpResponse response = null; try { //使用HttpClient发起请求,获取response response = httpClient.execute(httpGet); //解析响应 if (response.getStatusLine().getStatusCode() == 200) { String content = EntityUtils.toString(response.getEntity(), "utf8"); } } catch (IOException e) { e.printStackTrace(); }finally { //关闭response try { response.close(); } catch (IOException e) { e.printStackTrace(); } try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } 在创建HttpGet对象之前,需要对URIBuilder对象设置字符编码为UTF-8。修改代码如下:
//创建URIBuilder
URIBuilder uriBuilder = new URIBuilder(System_Url.getOssDomain()+"/push/pushMessage.html");
//设置字符编码为UTF-8
uriBuilder.setCharset(Charset.forName("UTF-8"));
//设置参数
uriBuilder.setParameter("pushFrequency","update");
uriBuilder.setParameter("categoryId",management.getId().toString());
uriBuilder.setParameter("categoryName",management.getName());
uriBuilder.setParameter("articleTitle",sysLaws.getLawsName());
//创建HttpGet对象,设置url访问地址
HttpGet httpGet = new HttpGet(uriBuilder.build());
通过调用setCharset(Charset.forName("UTF-8"))方法,将字符编码设置为UTF-8。这样在构建URI时,参数会以UTF-8格式进行编码传递。
原文地址: https://www.cveoy.top/t/topic/pnB2 著作权归作者所有。请勿转载和采集!