jenkins 执行可执行jar包测试中,请求乱码解决办法

自动化脚本在eclipse中执行,没有问题。jenkins构建打包自动化脚本,在执行脚本时,遇到了脚本中发送的请求的参数为乱码,实现了如下一些解决办法:

1、设置操作系统环境JAVA_TOOL_OPTIONS   = -Dfile.encoding=UTF-8

2、jenkins 系统管理> 系统设置 设置全局变量

3、修改代码,代码中把请求参数在使用前变成uft8 格式。响应输出流也专换成utf-8

para = new String(para.toString().getBytes(), "utf-8");   使用参数

in = new BufferedReader( new InputStreamReader(conn.getInputStream(),"utf-8"));   响应输出流也专换成utf-8

 
  public static String sendPost(String url, String param,String wexinsession) {    para = new String(para.toString().getBytes(), "utf-8"); 
        PrintWriter out = null;
         BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性  addRequestHeader("Content-Type","text/html;charset=UTF-8");
            conn.setRequestProperty("Content-Type", "text/html;charset=UTF-8");
            conn.setRequestProperty("Host", PropsUtil.readValue("emdsServerHost"));
            conn.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
            conn.setRequestProperty("Connection", "keep-alive");
            conn.setRequestProperty("X-Requested-With", "XMLHttpRequest");
            conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
            conn.setRequestProperty("Accept-Language", "zh-cn");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Origin", "http://xxx.xxx.xxx);
            conn.setRequestProperty("Content-Length", "700");
            conn.setRequestProperty("Connection", "keep-alive");
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13C75 MicroMessenger/6.3.9 NetType/WIFI Language/zh_CN");
            conn.setRequestProperty("Referer", "http://xxx.xxx.xxx/sss.ss");

            conn.setRequestProperty("Cookie", wexinsession);
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader( new InputStreamReader(conn.getInputStream(),"utf-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }

          //  System.out.println(result);
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!"+e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally{
            try{
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            }
            catch(IOException ex){
                ex.printStackTrace();
            }
        }
        return result;
    }  
时间: 2024-10-10 20:26:29

jenkins 执行可执行jar包测试中,请求乱码解决办法的相关文章

eclipse中maven项目jar包不会自动下载解决办法

Eclipse中maven从远程仓库中下载jar包有时会很慢,有些甚至进度停止不动,这个时候我们可能会终止当前下载,但是终止jar包下载后会出现一个问题,再次打开Eclipse时,你会发现提示你项目中依赖的jar包找不到,如下图所示,项目右键打--->Build Path--->Configure Build Path 打开项目的 Java Build Path 在 Libraries 页签下 Maven Dependenicies 你会发现报错提示 依赖的jar包 missing如下图所示

Jmeter响应中中文乱码解决办法

在jmeter的bin目录下有一个jmeter.properties的文件,打开它,搜索sampleresult.default.encoding,把它的注释打开,也就是把最前面的#去掉,改成sampleresult.default.encoding=UTF-8,保存,重新打开jmeter就ok啦

select中文字垂直居中解决办法

我们知道select标签在各个浏览器中的属性和各浏览器的支持各有些不同,从而造成select选择框在各浏览器的显示有不同,下面我们通过对主要 外形CSS属性的支持,打造全兼容select. 我对select的height.padding.line-height分别利用控制变量的方法写了个DEMO在各浏览器上测试三种情况:height.100.padding.0.height.no.padding.100.no.height.no.padding,结果如  链接图片各浏览器DEMO外观 我们可以得

http中 get方法 传送中文参数乱码解决办法

http传送参数有两种方法:get 和post  当时使用get方法传递中文参数是会有乱码现象 解决办法: 1.在jsp压面url后面的参数使用 encodeURI:"&zxbghy="+ encodeURI(zxbghy) 2.在后台java获取参数时使用字节数组:temphgdmhy = new String(hgdmhy.getBytes("ISO-8859-1"), "UTF-8");  案例,用get方法传递两个中文参数:zxb

《BI项目笔记》SSAS部署时发生的问题——元数据管理器中存在错误 解决办法

原文:<BI项目笔记>SSAS部署时发生的问题--元数据管理器中存在错误 解决办法 在生成和部署期间出错.是否继续?解决办法: 用Microsoft SQL Server Management Studio 连接Analysis Services 然后删除多维数据库,重新布署.这样就OK的.

maven中的jar包未下载完全如何解决?

1.连接的仓库有可能是要导入非默认的下载镜像地址.  如需更改,则在 D:\ProgramFiles\apache-maven-3.5.2\conf 下替换掉相应的settings.xml文件  并在IntelJ中,修改maven指定的settings.xml文件地址.   user settings file:指定settings.xml文件地址 local repository:指定maven本地仓库地址 (顺便吐槽一下eclipse,太难用了,自从用了IntelJ,感觉eclipse简直没

springboot jar包运行中获取资源文件

1. 今天晚上写了一个程序,基于Spring boot的一个小网站,发现使用FileUtils.class.getResource(path)来获取jar包中的资源文件并不能成功,其路径很奇怪 file:/Users/lonecloud/Documents/ideaCode/git/export/target/export-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/temp/temp.xls 查阅资料后,并且查看jar包中的资源文件发现有!还有classes!这

ubuntu终端中执行命名出现错误,提示没有公钥的解决办法

在安装systemback时提示错误: 由于没有公钥,无法验证下列签名: NO_PUBKEY 14E4942973C62A1B 解决办法: 打开终端,去下载公钥: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 14E4942973C62A1B 后面的14E4942973C62A1B 替换成自己提示缺失的公钥. 再继续执行即可. 原文地址:https://www.cnblogs.com/jsdy/p/12343245.h

Android 将Activity殴打jar包 对于由第三方使用 解决XML 图片 文本资源并不难过进入jar包装问题!

做项目需要打包成jar文件供第三方使用项目要求(将图片 文字资源写到到jar包中,第三方调用时,仅须要在AndroidManifest.xml配置下对应的Activity通过StartActivity方式拉起Activity):在网上找了好久.并依靠查看Android源代码终于攻克了问题 一:须要明确知识: 1.APK中的Res文件夹无法通过Eclipse的Export方式导入到jar包中 而Assert能够 2.Android程序在编译成APK时须要通过aapt将Res文件夹下的资源生成相应的