1.需要httpclient4.5的jar包
https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
2.代码
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
// 所传参数
formparams.add(new BasicNameValuePair("username", ""));
formparams.add(new BasicNameValuePair("password", ""));
HttpEntity reqEntity = new UrlEncodedFormEntity(formparams, "utf-8");
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)//一、连接超时:connectionTimeout-->指的是连接一个url的连接等待时间
.setSocketTimeout(5000)// 二、读取数据超时:SocketTimeout-->指的是连接上一个url,获取response的返回等待时间
.setConnectionRequestTimeout(5000)
.build();
HttpClient client = new DefaultHttpClient();
//采用post方式请求url
HttpPost post = new HttpPost("http://cnivi.com.cn/login");
post.setEntity(reqEntity);
post.setConfig(requestConfig);
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
//此message为访问后的结果
String message = EntityUtils.toString(resEntity, "utf-8");
System.out.println(message);
} else {
System.out.println("请求失败");
}
3.如果发生中文乱码可以试试以下代码
public static String post(String json,String URL) { //json:请求url的参数
String obj=null;
// 创建默认的httpClient实例
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httppost
HttpPost httppost = new HttpPost(URL);
httppost.addHeader("Content-type", "application/json; charset=utf-8");
httppost.setHeader("Accept", "application/json");
try {
StringEntity strEntity = new StringEntity(json,Charset.forName("UTF-8")); //对参数进行编码,防止中文乱码
strEntity.setContentEncoding("UTF-8");
httppost.setEntity(strEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
try {
//获取相应实体
HttpEntity entity = response.getEntity();
if (entity != null) {
obj=EntityUtils.toString(entity, "UTF-8");
}
} finally {
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
// 关闭连接,释放资源
httpclient.close();
}
return obj;
}