请教httpclient4.0中文乱码的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教httpclient4.0中文乱码的问题相关的知识,希望对你有一定的参考价值。

参考技术A 1.服务器认证(Server Authentication)
HttpClient处理服务器认证几乎是透明的,仅需要开发人员提供登录信息(login credentials)。登录信息保存在HttpState类的实例中,可以通过 setCredentials(String realm, Credentials cred)和getCredentials(String realm)来获取或设置。
HttpClient内建的自动认证,可以通过HttpMethod类的setDoAuthentication(boolean doAuthentication)方法关闭,而且这次关闭只影响HttpMethod当前的实例。

2.代理认证(proxy authentication)
  除了登录信息需单独存放以外,代理认证与服务器认证几乎一致。用 setProxyCredentials(String realm, Credentials cred)和 getProxyCredentials(String realm)设、取登录信息。

3.认证方案(authentication schemes)

是HTTP中规定最早的也是最兼容的方案,遗憾的是也是最不安全的一个方案,因为它以明码传送用户名和密码。它要求一个UsernamePasswordCredentials实例,可以指定服务器端的访问空间或采用默认的登录信息。

HttpClient 用于解决测试时候乱码的问题

    

@Test

public void doPostWithParam() throws Exception, IOException {

CloseableHttpClient httpClient = HttpClients.createDefault();

// 创建一个post对象
HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.do");

// 创建一个entity,模拟一个表单
List<NameValuePair> kvList = new ArrayList<>();

kvList.add(new BasicNameValuePair("username", "张三"));
kvList.add(new BasicNameValuePair("password", "123"));

// 包装成一个entity对象

StringEntity entity = new UrlEncodedFormEntity(kvList);

// 设置请求的内容

post.setEntity(entity);

// 执行post请求
CloseableHttpResponse respose = httpClient.execute(post);

String string = EntityUtils.toString(respose.getEntity());
System.out.println(string);

respose.close();
httpClient.close();
}

 

 

在controller中设置如下内容

 

 

@RequestMapping(value = "/httpclient/post",method=RequestMethod.POST,
produces=MediaType.TEXT_PLAIN_VALUE+";charset=utf-8")
@ResponseBody

public String testPost(String username,String password){

System.out.println("username" + username + "/t password" + password) ;

//return TaotaoResult.ok();

return "username" + username + "/t password" + password ;
}
}

 

 

 

以上是关于请教httpclient4.0中文乱码的问题的主要内容,如果未能解决你的问题,请参考以下文章

请教python requests.post()请求一个第三方接口的问题返回中文乱码的问题

请教python 采 集 requests post请求一个第三方接口中文乱码的问题

请教python3如何打印中文

javaweb表单提交中文乱码问题?

从js向Action传中文参数出现乱码问题的解决方法

Servlet 知识点 中文乱码的本质与解决