使用HttpClient、POST访问

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;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值