分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

httpclient ?get ?post

发布时间:2023-09-06 02:13责任编辑:胡小海关键词:http

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; ???}}

httpclient ?get ?post

原文地址:https://www.cnblogs.com/yaowen/p/9610103.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved