zoukankan      html  css  js  c++  java
  • 使用httpclient发送get、post请求

    使用httpclient发送get、post请求是最常用的两种web请求
    示例代码如下

     1.get请求
        CloseableHttpClient httpclient = HttpClients.createDefault();        
        HttpGet httpGet = new HttpGet("http://targethost/homepage");
        CloseableHttpResponse response1 = httpclient.execute(httpGet);
    
        // 建立的http连接,仍旧被response1保持着,允许我们从网络socket中获取返回的数据
        // 为了释放资源,我们必须手动消耗掉response1或者取消连接
        //(使用CloseableHttpResponse类的close方法)
    
        try {
             //response1.getStatusLine();
            //此处可以通过responses获取响应内容,getEntity方法获取响应体。
            HttpEntity entity1 = response1.getEntity();
                // do something useful with the response body
                // and ensure it is fully consumed
                EntityUtils.consume(entity1);
            } finally {
                response1.close();
            }
    
        2.post 请求
         Post请求关键在于发送参数,参数分为两种:一种是键值对,另一种是纯文本。
         HttpClient 均支持这两种方式:
    
            HttpPost httpPost = new HttpPost("url");
            // 拼接键值参数
            // List  nvps = new ArrayList ();
            // nvps.add(new BasicNameValuePair("username", "vip"));
            // nvps.add(new BasicNameValuePair("password", "secret"));
            // httpPost.setEntity(new UrlEncodedFormEntity(nvps));
        
            //使用文本参赛
            HttpEntity he = new StringEntity("{"method":"","params":[]}");
            httpPost.setEntity(he);
            httpPost.addHeader("Cookie","AwAAY&dp0gkAIIugIgJOWqoYA");
            httpPost.addHeader("User-Agent", 
                "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0");
            httpPost.addHeader("Host", "www.yahoo.com");
    
            CloseableHttpResponse response2 = httpclient.execute(httpPost);
            try {
                System.out.println(response2.getStatusLine());
                HttpEntity entity2 = response2.getEntity();
                InputStream is = entity2.getContent();
    
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String content = null;
                while ((content = br.readLine()) != null) {
                    int count = StringUtils.countMatches(content, "conversation");
                    System.out.println(count);
                }
                br.close();
                // 消耗掉response
                EntityUtils.consume(entity2);
            } finally {
                response2.close();
            }
  • 相关阅读:
    两款开发辅助工具介绍
    探究Repository模式的两种写法与疑惑
    js 时间处理
    Jquery元素追加和删除
    js 格式验证总结
    jquery UI datepicker时间控件的使用
    jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
    JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
    form表单和ajax表单提交(Html.BeginForm()、Ajax.BeginForm())的差别
    了解了这些才能开始发挥jQuery的威力(转)
  • 原文地址:https://www.cnblogs.com/swbzmx/p/5604373.html
Copyright © 2011-2022 走看看