zoukankan      html  css  js  c++  java
  • HttpClient四中跨域获取数据的方式

    1.HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的,最新的,功能丰富的支持http协议的客户端编程工具包,并且他支持http协议最新的版本和协议

    2.导入依赖

    <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.3.5</version>
    </dependency>

    3.DoGet方法(无参)

     DoGet(有参)

     DoPost(无参)

     带有参数的post的请求

       public static void main(String[] args) throws Exception {
    
            // 创建Httpclient对象
            CloseableHttpClient httpclient = HttpClients.createDefault();
    
            // 创建http POST请求
            HttpPost httpPost = new HttpPost("http://www.oschina.net/search");
            
         // 伪装成浏览器
            httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36");
    
            // 设置2个post参数,一个是scope、一个是q
            List<NameValuePair> parameters = new ArrayList<NameValuePair>(0);
            parameters.add(new BasicNameValuePair("scope", "project"));
            parameters.add(new BasicNameValuePair("q", "java"));
            parameters.add(new BasicNameValuePair("fromerr", "7nXH76r7"));
            // 构造一个form表单式的实体
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters);
            // 将请求实体设置到httpPost对象中
            httpPost.setEntity(formEntity);    
    
            CloseableHttpResponse response = null;
            try {
                // 执行请求
                response = httpclient.execute(httpPost);
                // 判断返回状态是否为200
                if (response.getStatusLine().getStatusCode() == 200) {
                    String content = EntityUtils.toString(response.getEntity(), "UTF-8");
                    System.out.println(content);
                }
            } finally {
                if (response != null) {
                    response.close();
                }
                httpclient.close();
            }
    
        }
  • 相关阅读:
    11.菜单(一)
    线性表之顺序存储详解
    SVN 撤回已提交的代码
    线性表1
    顶层父类
    异常类之派生类
    new和delete重载
    异常类之基类
    Qt中多线程问题
    智能指针实例
  • 原文地址:https://www.cnblogs.com/sh-0131/p/11742308.html
Copyright © 2011-2022 走看看