package org.jeecg.modules.bussiness.PostTests;

import com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.BIConversion;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.multipart.FilePart;

import java.awt.*;

import java.awt.font.FontRenderContext;

import java.awt.geom.Rectangle2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.Random;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.methods.multipart.StringPart;

import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;

import org.apache.commons.httpclient.methods.multipart.Part;

import org.apache.xmlbeans.impl.xb.xsdschema.Public;

import javax.imageio.ImageIO;

public class Myhttpclient

{

public static void main(String args[]) throws IOException, InterruptedException {

int i=0;

while(true) {

String targetURL = null;// TODO 指定URL

File targetFile = null;// TODO 指定上传文件

targetFile = createImage(i);

i++;

long strParam = System.currentTimeMillis();

String strJson = "{"id":"" +

strParam +

"","createBy":"10001","createTime":"3021-10-15 14:45:41","updateBy":"10001","updateTime":"3021-10-15 14:45:41","sysOrgCode":"10001","securDoorNum":"10001","securDoorStatus":"606","bodyTemperature":"11","metalTestResult":"12","abnormalTemRecord":"13","faceDetectionResults":"44","dateTime":"3021-10-15 14:45:41","realTime":"3021-10-15 14:45:41"}";

targetURL = "http://localhost:8080/jeecg-boot/bussiness/sopManagementInfo/addR";

PostMethod filePost = new PostMethod(targetURL);

filePost.setRequestHeader("X-Access-Token", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9." +

"eyJleHAiOjE2MzcwMjk2NzQsInVzZXJuYW1lIjoiYWRtaW4ifQ.qXDwEDRItZgRZ-oEsfQXPIGjuimM9LWj9z4Wcmguyrc");

try {
Part[] parts = {
new FilePart("myfile", targetFile),
new StringPart("jsonstr", strJson)
};
filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));
HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
int status = client.executeMethod(filePost);
if (status == HttpStatus.SC_OK) {
System.out.println("上传成功");
} else {
System.out.println("上传失败");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
filePost.releaseConnection();
}

}

}

static  File createImage(int i) throws IOException, InterruptedException {
int width = 1000;
int height = 1000;
String s=create(); File file = new File("D:/testImage/image"+i+".jpg"); Font font = new Font("宋体", Font.PLAIN, 150);
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)bi.getGraphics();
g2.setBackground(Color.black);
g2.clearRect(0, 0, width, height);
g2.setPaint(Color.RED);
g2.setFont(font); FontRenderContext context = g2.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(s, context);
double x = (width - bounds.getWidth()) / 2;
double y = (height - bounds.getHeight()) / 2;
double ascent = -bounds.getY();
double baseY = y + ascent; g2.drawString(s, (int)x, (int)baseY);
ImageIO.write(bi, "jpg", file);
Thread.sleep(1500);
return file;
} static String create(){
String s="";
Random r = new Random();
for(int i=0 ; i<5 ; i++)
{
int ran1 = r.nextInt(1000);
s+=ran1;
}
return s;
}

}

Htttpclien循环自动生成图片,同时发送参数和文件,模拟http的post请求的更多相关文章

  1. Java使用HTTP编程模拟多参数多文件表单信息的请求与处理

    本文目的是提供Java环境下模拟浏览器页面提交多参数多文件表单请求以及解析请求的Demo代码.这里用Java提供的HttpURLConnection类做HTTP请求,再原始点可以直接使用socket. ...

  2. Eclipse中自动提示的方法参数都是arg0,arg1的解决方法

    Eclipse中自动提示的方法参数都是arg0,arg1,就不能根据参数名来推断参数的含义,非常不方便. 解决方法:Preferences->Java->Installed JREs,发现 ...

  3. Jmeter: PATCH方法无法发送参数的暂时解决方法

    Jmeter: PATCH方法无法发送参数的暂时解决方法 最近在做API测试,前面的GET这些HTTP Request方法都无压力,顺利解决. 但碰到PATCH方法时,发现无法通过. 通过对比,发现P ...

  4. python接口自动化二(发送post请求)

    前言 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编 ...

  5. windows下自动删除n天前的文件

    使用windows2003下的内置命令forfiles配合计划任务可以实现自动删除n天前的文件. windows2003中设定自动执行的计划任务很简单. 一.脚本编写 forfiles命令用法: Fo ...

  6. Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式

      相关文章列表: < Android 自动编译.打包生成apk文件 1 - 命令行方式> < Android 自动编译.打包生成apk文件 2 - 使用原生Ant方式> &l ...

  7. Android 自动编译、打包生成apk文件 4 - 多渠道批量打包

    相关文章列表: < Android 自动编译.打包生成apk文件 1 - 命令行方式> < Android 自动编译.打包生成apk文件 2 - 使用原生Ant方式 > < ...

  8. 用批处理文件自动备份文件及文件夹,并自动删除n天前的文件

    原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...

  9. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  10. 定时执行自动化脚本-(一)导入保存jmeter参数至文件的jar包

    1.先完成jmeter脚本编写,具体怎么写此处不再详述,可以参考其他文档. 2.有时你会发现jmeter脚本执行后,有些响应信息你需要提取到文件中,以便后续使用: 怎么实现呢?个人思路就是,先写个ja ...

随机推荐

  1. chatgpt入口,免费在线chatgpt--与人工智能聊天?尝试chatgpt入口,免费在线chatgpt吧!

    介绍一款人工智能聊天机器人--chatgpt入口 chatgpt是一款智能聊天机器人,它能够与人类进行自然语言对话,可以回答问题.提供建议,还可以玩游戏和聊天互动,是当前最受欢迎的人工智能聊天工具之一 ...

  2. Blazor前后端框架Known-V1.2.2

    V1.2.2 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. 概述 基于C#和Blazor实现的快速开发框架,前后端分离,开箱即用. 跨平台,单 ...

  3. pytest7.4版本的一个变更,可能会影响你的项目

    pytest7.4版本的一个变更,可能会影响你的项目 本文撰写于 2023.7.10 准备工作 项目结构如下 D:\Gitee\DemoRepo (17.97MB) +-- testCases (1. ...

  4. 【Vue】父子组件传值、方法引用

    父子组件值.方法引用 1.值 1.1 父组件获取子组件值 父组件 <template> <div> <button @click="getChildValue& ...

  5. Python数据分析易错知识点归纳(六):机器学习

    六.机器学习 分类和聚类的区别 分类是有监督学习,聚类是无监督学习 分类算法用于预测新样本,聚类用于理解已知数据 标准化/归一化 type_se_num = type_se[type_se!= 'ob ...

  6. http方式内网搭建CDH6.3.2与部分组件优化

    Cloudera_Manager_6.3.2安装配置文档 1. 配置准备 Cloudera Manager (简称CM)用于管理CDH6集群,可进行节点安装.配置.服务配置等,提供Web窗口界面提高了 ...

  7. Linux实现双击自动安装deb文件

    在Linux中,有几个常用的软件可以实现双击自动安装.deb文件的功能.以下是一些推荐的软件: 1. GDebi:GDebi是一个轻量级的图形化工具,专门用于安装.deb文件.它可以解决依赖关系,并提 ...

  8. 服务器衡量标准--RASUM

    对于一台服务器来讲,服务器的性能设计目标是如何平衡各部分的性能,使整个系统的性能达到最优.如果一台服务器有每秒处理1000个服务请求的能力,但网卡只能接受200个请求,而硬盘只能负担150个,而各种总 ...

  9. Linux 命令:lsof

    参考文档:lsof命令详解 lsof,列出系统中所有打开的文件. 各列字段意义如下: COMMAND: 进程的名称 PID: 进程标识符 USER: 进程所有者 FD: 文件描述符,应用程序通过文件描 ...

  10. netstat 某连接的 Recv-Q(接收队列)达到500多万字节的内核参数排查

    思路: cat proc文件系统下的 sys/net 目录下所有文件,根据结果降序排序(如果打印前xx,可能会漏掉关键信息,在定位问题时需要注意,慎用过滤),根据结果使用 grep -rn xxx 找 ...