zoukankan      html  css  js  c++  java
  • 【HttpClient】事例学习

    要下载jar包
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    
    /*
     * 模拟下载
     * 使用到的类:
     * 1.HttpClient:
     * 2.HttpResponse
     * 3.HttpEntity
     * 4.EntityUtils
     * 
     */
    public class HttpDemo1 {
        public static void main(String[] args) throws IOException {
            // HttpClient:创建了客户端。
            HttpClient client = new DefaultHttpClient();
            // 请求 get:HttpGet
            String path = "http://www.baidu.com/img/bdlogo.gif";
            HttpGet get = new HttpGet(path);
            // 让客户端执行请求。
            HttpResponse response = client.execute(get);
            // 数据全部在HttpResponse
            // 1:响应码。
            int code = response.getStatusLine().getStatusCode();
            if(code == 200){
                // 取出返回的数据。 数据封装到HttpEntity对象。
                HttpEntity entity = response.getEntity();
                // 如何获得HttpEntity对象中的数据。
                byte[] b = EntityUtils.toByteArray(entity);
                FileOutputStream fos = new FileOutputStream("e:\bb.gif");
                fos.write(b);
                fos.flush();
                fos.close();
            }
        }
    }
    
    
    
    
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.charset.Charset;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.FormBodyPart;
    import org.apache.http.entity.mime.MultipartEntity;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.entity.mime.content.StringBody;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    /*
     * 使用的类:
     * HttpClient
     * HttpPost
     * FileBody
     * FormBodyPart
     * MultipartEntity
     * HttpResponse
     * EntityUtils
     * 
     */
    public class HttpDemo5 {
        
        public static void main(String[] args) throws ClientProtocolException, IOException {
            //1:创建HttpClient 对象(创建客户端)
            HttpClient client = new DefaultHttpClient();
            
            //2:创建请求方式(web中的请求方式method)
            String uri = "http://localhost:8080/FileUpload/FileUploadServlet";
            HttpPost post = new HttpPost(uri);
            
            //3:包装要发送的数据(文件)
            //3.1:获取本地的文件
            File file = new File("e:\aa.jpg");
            //3.2:创建FileBody对象(文件主体)
            FileBody fileBody = new FileBody(file);
            //3.3:创建FormBodyPart 对象(表单主体部分)
            FormBodyPart part = new FormBodyPart("form", fileBody);
            
            //4:创建MultipartEntity对象。MultipartEntity:多部件实体
            MultipartEntity entity = new MultipartEntity();
            //5:把表单主体部分添加到多部件实体中(将文件类型的数据添加到entity中)
            entity.addPart(part);
            //5:将普通文本数据添加到多部件实体中
            entity.addPart("username", new StringBody("哈哈", "text/html", Charset.forName("utf-8")));
            entity.addPart("password", new StringBody("123"));
            
            //6:设置请求的实体
            post.setEntity(entity);
            //7:让客户端执行请求(带有数据的请求),得到的是HttpResponse对象(响应对象)
            HttpResponse response = client.execute(post);
            
            //8:通过响应对象获取响应码
            int code = response.getStatusLine().getStatusCode();
            //9:如果响应码为200(成功响应码),则获取服务器返回的数据
            if(code == 200){
                //9.1:获取HttpEntity对象(通过响应来获取)
                HttpEntity entity2 = response.getEntity();
                //10:使用EntityUtils工具类,将获取到的数据(实体)转换为字节数组形式,任何文件都可以以字节的形式保存
                byte[] b = EntityUtils.toByteArray(entity2);
                //输出内容
                System.out.println(new String(b, "utf-8"));
            }
            
        }
    
    }
    

      

  • 相关阅读:
    hdu3874
    spoj D-query
    hdu4348
    hdu4417
    hdu2665
    [LUOGU] P1057 传球游戏
    [CODEVS] 2193 数字三角形WW
    [CODEVS] 2189 数字三角形W
    [模板] 线段树
    [模板] 树状数组
  • 原文地址:https://www.cnblogs.com/rolly-yan/p/5777839.html
Copyright © 2011-2022 走看看