org.apache.http.client.HttpClient get/post请求

请求步骤

1、创建httpclient 对象

2、创建 请求方式,构造函数的值为请求路径

3、调用1中对象的execute() 方法,参数为 2 的对象

4、获取请求响应数据

5、释放连接资源

6、处理数据

一、使用org.apache.http.client.HttpClient 的get请求来实现

1、请求核心代码:

  // 创建 httpclient 对象  
    HttpClient httpclient = new DefaultHttpClient();
    //创建请求方式,因为是get请求,所以可以在url后面连接请求参数
    HttpGet  httpget= new HttpGet("http://localhost:8080/music/user/delete.do?id=110&name=name");
    try{
    // 执行请求,获取响应数据
    HttpResponse response = httpclient.execute(httpget);
    //  获取请求实体,
    HttpEntity entity = response.getEntity();
    // 获取返回实例的内容的长度
        long len= entity.getContentLength();
        // 获取 content type
        Header  head= entity.getContentType();
        String  bodys= head.toString();
        System.out.println("内容长度"+len +"head 内容"+bodys);
     //实例流的获取
    if(entity != null){
    InputStream input= entity.getContent();
    byte []buffer= new byte[2048];
    input.read(buffer);
    String body= new String(buffer,"utf-8");
    System.out.println("获取资源"+body);
    JSONObject json= new JSONObject();
    json=JSONObject.fromObject(body);
    String ids= json.getString("id");
    String names=json.getString("name");
    System.out.print(ids);
    System.out.print(names);
    }
    }catch(HTTPException e){
        e.printStackTrace();
    }catch(IOException ee){
        ee.printStackTrace();
    }finally{
        httpget.releaseConnection();
    }

2、服务器端响应请求核心代码:

请求完整路径 url=http://localhost:8080/music/user/delete.do?

@RequestMapping(value="/delete.do")
public void  delete(String id,String name,HttpServletResponse response){
    System.out.println("请求到达 delete");
    String yid= id;
    String yname=name;
    System.out.println("请求参数"+yid);
    System.out.println("请求参数name:"+name);
    try {
        OutputStream output= response.getOutputStream();

        // 编码的设置
        response.setCharacterEncoding("UTF-8");

        // 主题类型的设置
        response.setContentType("text/html");
        // 这里传递一个json 格式数据
        JSONObject  json= new JSONObject();
        json.put("id", 10);
        json.put("name", "name");
        String jstring= json.toString();

         // 编码设置
        byte [] b= jstring.getBytes("UTF-8");

         // 响应数据输出
        output.write(b);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

二、使用org.apache.http.client.HttpClient 的get请求来实现,自己拼凑url 以及多个请求数据

1、请求发送核心代码

  // 创建 httpclient 对象   这里使用httpclient  
    HttpClient httpclient = new DefaultHttpClient();
    // 创建请求方法对象
    HttpGet httpget = new HttpGet();
    try{
    //请求参数对象的创建以及参数的设置
    List<NameValuePair> qparams = new ArrayList<NameValuePair>();
    qparams.add(new BasicNameValuePair("id", "110110"));
    qparams.add(new BasicNameValuePair("name", "you name"));
    qparams.add(new BasicNameValuePair("age", "10"));
    qparams.add(new BasicNameValuePair("sex", "man"));
    // url的拼装,以及请求参数编码的设置
    java.net.URI uri = URIUtils.createURI("http", "localhost:8080/music/user", -1, "/delete.do",
            URLEncodedUtils.format(qparams, "UTF-8"), null);
     // 给请求路径设置值,据访问路径
    httpget.setURI(uri);
    System.out.println(httpget.getURI());
    // 执行请求,获取响应数据
    HttpResponse response = httpclient.execute(httpget);
    //  获取请求实体,
    HttpEntity entity = response.getEntity();
    // 获取返回实例的内容的长度
        long len= entity.getContentLength();
        // 获取 content type
        Header  head= entity.getContentType();
        String  bodys= head.toString();
        System.out.println("内容长度:"+len +" head 内容:"+bodys);
     //实例流的获取
    if(entity != null){
    InputStream input= entity.getContent();
    byte []buffer= new byte[2048];
    input.read(buffer);
    String body= new String(buffer,"utf-8");
    System.out.println("获取资源"+body);
    JSONObject json= new JSONObject();
    json=JSONObject.fromObject(body);
    String ids= json.getString("id");
    String names=json.getString("name");
    System.out.print(ids);
    System.out.print(names);
    }
    }catch(HTTPException e){
        e.printStackTrace();
    }catch(IOException ee){
        ee.printStackTrace();
    }catch(Exception eee){
        eee.printStackTrace();
    }finally{
        httpget.releaseConnection();
    }


2、接收请求,响应请求核心代码

请求完整路径:url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")
public void  delete(String id,String name,HttpServletResponse response){
    System.out.println("请求到达 delete");
    String yid= id;
    String yname=name;
    System.out.println("请求参数"+yid);
    System.out.println("请求参数name:"+name);
    try {
        OutputStream output= response.getOutputStream();

         // 输出内容编码的设置
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        // 这里传递一个json 格式数据
        JSONObject  json= new JSONObject();
        json.put("id", 10);
        json.put("name", "name");
        String jstring= json.toString();

          // 编码的设置
        byte [] b= jstring.getBytes("UTF-8");
        output.write(b);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


三、使用org.apache.http.client.HttpClient 的post请求来实现

1、请求端核心代码

// 创建 httpclient 对象   这里使用httpclient  
    HttpClient httpclient = new DefaultHttpClient();
    // 请求参数的组装
    List<NameValuePair> qparams = new ArrayList<NameValuePair>();
    qparams.add(new BasicNameValuePair("id", "110110"));
    qparams.add(new BasicNameValuePair("name", "you name"));
    qparams.add(new BasicNameValuePair("age", "10"));
    qparams.add(new BasicNameValuePair("sex", "man"));
    try{

     // UrlEncodedFormEntity 实例将会使用URL编码来编码参数

     UrlEncodedFormEntity  entity = new UrlEncodedFormEntity(qparams,"UTF-8");
    HttpPost httppost= new HttpPost("http://localhost:8080/music/user/delete.do");
    // 请求参数的设置
    httppost.setEntity(entity);
    // 请求执行,以及响应数据的获取
    HttpResponse  response = httpclient.execute(httppost);

    // 获取请求响应
    HttpEntity entitys = response.getEntity();

       // 响应内容的长度
    long len= entity.getContentLength();

       // 响应内容的类型
    Header  head= entity.getContentType();
    String  bodys= head.toString();
    System.out.println("内容长度:"+len +" head 内容:"+bodys);
    if(entitys != null){

        // 获取响应数据
        InputStream input= entitys.getContent();
        byte []buffer= new byte[2048];
        input.read(buffer);

         // 编码设置
        String body= new String(buffer,"utf-8");
        System.out.println("获取资源"+body);
    }
    }catch(Exception e){
        e.printStackTrace();
    }

2、接收请求,响应请求核心代码

请求完整路径: url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")
public void  delete(String id,String name,String age,HttpServletResponse response){
    System.out.println("请求到达 delete");
    String yid= id;
    String yname=name;
    String ages=age;
    System.out.println("请求参数"+yid);
    System.out.println("请求参数name:"+name);
    System.out.println("请求参数age:"+ages);
    try {
        OutputStream output= response.getOutputStream();

       //响应内容编码的设置
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        // 这里传递一个json 格式数据
        JSONObject  json= new JSONObject();
        json.put("id", 10);
        json.put("name", "name");
        String jstring= json.toString();
        byte [] b= jstring.getBytes("UTF-8");
        output.write(b);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。