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

时间: 2024-08-06 17:05:50

org.apache.http.client.HttpClient get/post请求的相关文章

apache.http.client.HttpClient

前言 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活.HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和

org.apache.http.client.HttpClient使用方法

官网说明: http://hc.apache.org/httpclient-3.x/ Commons HttpClient项目现已结束,不再开发.它已被其HttpClient和HttpCore模块中的Apache HttpComponents项目所取代,它们提供更好的性能和更大的灵活性. 从2011年开始,org.apache.commons.httpclient就不再开发.这就是说,它已经落伍了. 方法的对称性上的区别 一.org.apache.http.client org.apache.h

org.apache.http.client.HttpClient; HttpClient 4.3超时设置

可用的code public static String doPost(String url, String params, String contentType) /*throws IOException */{ CloseableHttpClient client = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(httpSoTimeout)

Android studio没有org.apache.http.client.HttpClient;等包问题 解决方案

以前用Eclipse做Android开发工具一直使用apache的http做网络请求,最近换用了Android studio发现没有办法引用apache的包,下面是我引用的步骤

android使用apache httpclient发送post请求

package com.liuc; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.ht

HttpClient模拟http请求

最近工作中使用到了两个jar包 httpclient.jar, httpcore.jar HttpClient 的 abort(终止)程序示例 [java] view plaincopyprint? /* * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contr

Java使用HttpClient实现Post请求

基于项目需求,想要实现Post消息推送,故采用HttpClient组件进行实现,相关代码如下(注:程序采用的httpclient和httpcore依赖包的版本为4.2.5): import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.HttpClient; import org.apache

Android学习笔记之HttpClient实现Http请求....

PS:最近光忙着考试了....破组成原理都看吐了....搞的什么也不想干...写篇博客爽爽吧....貌似明天就考试了...sad... 学习笔记: 1.如何实现Http请求来实现通信.... 2.解决Android 2.3 版本以后无法使用Http请求问题....   这里我使用HttpClient来开发Http程序来完成简单的网络通信....其实使用HttpUrlConnection也可以实现,不过HttpClient可以完成HttpUrlConnection的所有功能,并且还自己增加了其他的

JAVA利用HttpClient进行POST请求(HTTPS)

目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求. 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而JQuery的post请求是不允许跨域的. 这时,就只能够用HttpClient包进行请求了,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. 1.写一个SSLClient类,继承至HttpClient [java] view plain c