zoukankan      html  css  js  c++  java
  • httpclient get post

    https://www.cnblogs.com/wutongin/p/7778996.html

    post请求方法和get请求方法
    
     
    
    package com.xkeshi.paymentweb.controllers.test;
    
    import com.alibaba.fastjson.JSONObject;
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.entity.mime.HttpMultipartMode;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.entity.mime.content.StringBody;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by jiangzw on 2017/11/3.
     */
    public class MyTestHttpClient {
    
        /**
         * post方式提交表单(模拟用户登录请求)
         */
        public static void doFormPost() {
            // 创建默认的httpClient实例.
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 创建httppost
            String url = "http://localhost:8888/myTest/testHttpClientPost";
            HttpPost httppost = new HttpPost(url);
            // 创建参数队列
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            formparams.add(new BasicNameValuePair("username", "admin"));
            formparams.add(new BasicNameValuePair("password", "123456"));
            UrlEncodedFormEntity entity = null;
            try {
                entity = new UrlEncodedFormEntity(formparams, "UTF-8");
                httppost.setEntity(entity);
                System.out.println("executing request " + httppost.getURI());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        System.out.println("Response content: " + EntityUtils.toString(resEntity, "UTF-8"));
                    }
                } finally {
                    response.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭连接,释放资源
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 发送 get请求
         */
        public static void doGet() {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 创建参数队列
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("username", "admin"));
            params.add(new BasicNameValuePair("password", "123456"));
    
            try {
                //参数转换为字符串
                String paramsStr = EntityUtils.toString(new UrlEncodedFormEntity(params, "UTF-8"));
                String url = "http://localhost:8888/myTest/testHttpClientGet" + "?" + paramsStr;
                // 创建httpget.
                HttpGet httpget = new HttpGet(url);
                System.out.println("executing request " + httpget.getURI());
                // 执行get请求.
                CloseableHttpResponse response = httpclient.execute(httpget);
                try {
                    // 获取响应实体
                    HttpEntity entity = response.getEntity();
                    // 打印响应状态
                    System.out.println(response.getStatusLine());
                    if (entity != null) {
                        // 打印响应内容长度
                        System.out.println("Response content length: " + entity.getContentLength());
                        // 打印响应内容
                        System.out.println("Response content: " + EntityUtils.toString(entity));
                    }
                } finally {
                    response.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭连接,释放资源
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * post方式提交表单(模拟用户登录请求)
         */
        public static void doStringPost() {
            // 创建默认的httpClient实例.
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 创建httppost
            String url = "http://localhost:8888/myTest/testHttpClientStringPost";
            HttpPost httppost = new HttpPost(url);
            // 创建参数字符串
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("username", "admin");
            jsonObject.put("password", "123456");
            try {
                //设置实体内容的格式。APPLICATION_JSON = "application/json",
                // 如果传送"application/xml"格式,选择ContentType.APPLICATION_XML
                StringEntity entity = new StringEntity(jsonObject.toString(), ContentType.APPLICATION_JSON);
                httppost.setEntity(entity); //发送字符串参数
                System.out.println("executing request " + httppost.getURI());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        System.out.println("Response content: " + EntityUtils.toString(resEntity, "UTF-8"));
                    }
                } finally {
                    response.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭连接,释放资源
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 上传文件
         */
        public static void doUploadPost() {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            String url = "http://localhost:8888/myTest/testHttpClientUploadPost";
            try {
                HttpPost httppost = new HttpPost(url);
    
                FileBody fileBody = new FileBody(new File("D:\img8.jpg"));
                StringBody stringBody = new StringBody("一张测试图片", ContentType.TEXT_PLAIN.withCharset("UTF-8"));
    
                MultipartEntityBuilder builder = MultipartEntityBuilder.create();
                builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
                builder.addPart("file", fileBody);//文件参数
                builder.addPart("explain", stringBody);//字符串参数
                HttpEntity entity = builder.build();
    
                httppost.setEntity(entity);
    
                System.out.println("executing request " + httppost.getRequestLine());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    System.out.println(response.getStatusLine());
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        System.out.println("Response content: " + EntityUtils.toString(resEntity, "UTF-8"));
                    }
                } finally {
                    response.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
    //        doFormPost();
    //        doGet();
    //        doStringPost();
            doUploadPost();
        }
    
    }
    
    
    
    处理请求的方法
    
    package com.xkeshi.paymentweb.controllers.test;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import java.io.File;
    
    /**
     * Created by jiangzw on 2017/11/3.
     */
    @Controller
    @RequestMapping(value = "/myTest")
    public class MyTestController {
    
        @ResponseBody
        @RequestMapping(value = "/testHttpClientPost", method = RequestMethod.POST)
        public String testHttpClientPost(@RequestParam("username") String username,
                                         @RequestParam("password") String password) {
            String result = null;
    
            if ("admin".equals(username) && "123456".equals(password)) {
                result = "用户名和密码验证成功!";
            } else {
                result = "用户名和密码验证失败!";
            }
            return result;
        }
    
        @ResponseBody
        @RequestMapping(value = "/testHttpClientGet", method = RequestMethod.GET)
        public String testHttpClientGet(@RequestParam("username") String username,
                                        @RequestParam("password") String password) {
            String result = null;
    
            if ("admin".equals(username) && "123456".equals(password)) {
                result = "用户名和密码验证成功!";
            } else {
                result = "用户名和密码验证失败!";
            }
            return result;
        }
    
        @ResponseBody
        @RequestMapping(value = "/testHttpClientStringPost", method = RequestMethod.POST)
        public String testHttpClientStringPost(@RequestBody String requestBody) {
            JSONObject jsonObject = JSON.parseObject(requestBody);
            String username = jsonObject.get("username").toString();
            String password = jsonObject.get("password").toString();
            String result = null;
    
            if ("admin".equals(username) && "123456".equals(password)) {
                result = "用户名和密码验证成功!";
            } else {
                result = "用户名和密码验证失败!";
            }
            return result;
        }
    
        @ResponseBody
        @RequestMapping(value = "/testHttpClientUploadPost", method = RequestMethod.POST)
        public String testHttpClientUploadPost(@RequestParam("file") CommonsMultipartFile file,
                                               @RequestParam("explain") String explain) {
    
            System.out.println("explain: " + explain);
            String result = "上传失败";
    
            //文件保存路径和名称
            String savePath = "D:\home" + File.separator + System.currentTimeMillis() + file.getOriginalFilename();
            File newFile= null;
            try {
                newFile = new File(savePath);
                //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
                file.transferTo(newFile);
                result = "上传成功";
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    }

  • 相关阅读:
    【视频】特别适合新手的运维利器ansible入门教程手册(附带视频演示和源代码)
    OSI,TCP/IP,TCP,UDP,Socket基础知识整理与回顾
    (语法基础)浅谈面向切面编程(AOP)
    Docker容器安装配置SQLServer服务(Linux)
    Asp Core部署到IIS服务器
    Tomcat:Commons Daemon procrun stdout initialized
    linux查看端口常用命令
    Linux下 Nginx安装与配置(Centos7)
    Linux下将.Asp Core 部署到 Docker容器中
    React Native Tips
  • 原文地址:https://www.cnblogs.com/yaowen/p/9610103.html
Copyright © 2011-2022 走看看