web 访问 apache httpclient https

问题描述

为什么我调用方法的时候乱码而且使用main方法调用方法就是控制台调用方法的时候存进去不乱吗使用struts请求action调用方法存进去就乱码了main跟action调用的一个方法里面值也是写死的并没有用struts传值问题就在于web请求https是不是需要配置什么从控制台上就没问题这是问题!!!!要死了在线等!!!!

解决方案

解决方案二:
request、response什么的都可以设置制定的编码格式的,你设置一下,还有你的文件右键属性设置一下编码格式,都统一了
解决方案三:
引用楼主qq526155988的回复:

为什么我调用方法的时候乱码而且使用main方法调用方法就是控制台调用方法的时候存进去不乱吗使用struts请求action调用方法存进去就乱码了main跟action调用的一个方法里面值也是写死的并没有用struts传值问题就在于web请求https是不是需要配置什么从控制台上就没问题这是问题!!!!要死了在线等!!!!

是的我都设置了你说的request在哪里设置?StringaccountNo="6225123456789";StringaccountName="王府井测试1";StringaccountCard="2203811234567894";StringbankAllName="招商银行";StringbankBranchName="招商银行上地支行";StringbankNumber="141";StringrecDepType="01";StringaccountProvince="北京";StringaccountCity="北京";Stringmemo="王府井测试备注";StringbusiTransNO=getUUID();StringrequestTime=DateTools.getDate("yyyy-MM-ddHH:mm:ss.SSS");Stringsign=MD5Utils.getMD5String(transCode+aliasAccount+channel+requestTime);

我直接写死了publicStringhttpsPost(Stringcontent){StringresponseMessage="";BufferedReaderbufferedReader=null;try{register();HttpPosthttpPost=newHttpPost(httpsUrl);httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,30000);//构造最简单的字符串数据StringEntityreqEntity=newStringEntity(content);//设置类型reqEntity.setContentType("application/x-www-form-urlencoded;charset=UTF-8");//设置请求的数据httpPost.setEntity(reqEntity);HttpResponseresponse=httpClient.execute(httpPost);HttpEntityentity=response.getEntity();if(entity!=null){bufferedReader=newBufferedReader(newInputStreamReader(entity.getContent()));StringBufferstb=newStringBuffer();Stringline=null;while((line=bufferedReader.readLine())!=null){stb.append(line);}responseMessage=stb.toString();}EntityUtils.consume(entity);}catch(Exceptione){e.printStackTrace();}finally{if(bufferedReader!=null){try{bufferedReader.close();}catch(IOExceptione){e.printStackTrace();}}httpClient.getConnectionManager().shutdown();}returnresponseMessage;}

这是httpspost的代码
解决方案四:
什么是存进去就乱码?存进哪里了?存了哪些字段值?“struts请求action”——这个我能理解成就是Http请求吗?
解决方案五:
引用3楼gaofuqi的回复:

什么是存进去就乱码?存进哪里了?存了哪些字段值?“struts请求action”——这个我能理解成就是Http请求吗?

publicstaticvoidcreatecustomer(RequestMessagermsg){System.out.println(rmsg);RequestMessagerequestMessage=newRequestMessage();//CRB创建账户StringtransCode="CRB";Stringchannel="ch";StringuserNO="ch";Stringpassword="123456";StringaccountNo=rmsg.getAccountNo();StringaccountName=rmsg.getAccountName();SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMddHHmmssSSS");//可以方便地修改日期格式Datedate=newDate();Stringhehe=dateFormat.format(date);StringaliasAccount="changhw"+hehe;StringbankAllName=rmsg.getBankAllName();StringbankBranchName=rmsg.getBankBranchName();StringrecDepType=rmsg.getRecDepType();StringaccountProvince=rmsg.getAccountProvince();StringaccountCity=rmsg.getAccountCity();StringbusiTransNO=getUUID();StringrequestTime=DateTools.getDate("yyyy-MM-ddHH:mm:ss.SSS");Stringsign=MD5Utils.getMD5String(transCode+aliasAccount+channel+requestTime);requestMessage.setTransCode(transCode);requestMessage.setChannel(channel);requestMessage.setUserNO(userNO);requestMessage.setPassword(password);requestMessage.setAliasAccount(aliasAccount);requestMessage.setAccountNo(accountNo);requestMessage.setAccountName(accountName);requestMessage.setBankAllName(bankAllName);requestMessage.setBankBranchName(bankBranchName);requestMessage.setAccountProvince(accountProvince);requestMessage.setAccountCity(accountCity);requestMessage.setRecDepType(recDepType);requestMessage.setBusiTransNO(busiTransNO);requestMessage.setRequestTime(requestTime);requestMessage.setSign(sign);System.out.println(requestMessage);Stringcontent=JSON.toJSONString(requestMessage);System.out.println("明文内容为:"+content);StringsecurityContent=HttpsAuthTools.encrypt(content);System.out.println("密文内容为:"+securityContent);wfjHttpsSend(securityContent);}

这个方法后台执行通过main调用就可以实现但是通过action调用这个方法就不行了
解决方案六:
引用4楼qq526155988的回复:

Quote: 引用3楼gaofuqi的回复:
什么是存进去就乱码?存进哪里了?存了哪些字段值?“struts请求action”——这个我能理解成就是Http请求吗?

publicstaticvoidcreatecustomer(RequestMessagermsg){System.out.println(rmsg);RequestMessagerequestMessage=newRequestMessage();//CRB创建账户StringtransCode="CRB";Stringchannel="ch";StringuserNO="ch";Stringpassword="123456";StringaccountNo=rmsg.getAccountNo();StringaccountName=rmsg.getAccountName();SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMddHHmmssSSS");//可以方便地修改日期格式Datedate=newDate();Stringhehe=dateFormat.format(date);StringaliasAccount="changhw"+hehe;StringbankAllName=rmsg.getBankAllName();StringbankBranchName=rmsg.getBankBranchName();StringrecDepType=rmsg.getRecDepType();StringaccountProvince=rmsg.getAccountProvince();StringaccountCity=rmsg.getAccountCity();StringbusiTransNO=getUUID();StringrequestTime=DateTools.getDate("yyyy-MM-ddHH:mm:ss.SSS");Stringsign=MD5Utils.getMD5String(transCode+aliasAccount+channel+requestTime);requestMessage.setTransCode(transCode);requestMessage.setChannel(channel);requestMessage.setUserNO(userNO);requestMessage.setPassword(password);requestMessage.setAliasAccount(aliasAccount);requestMessage.setAccountNo(accountNo);requestMessage.setAccountName(accountName);requestMessage.setBankAllName(bankAllName);requestMessage.setBankBranchName(bankBranchName);requestMessage.setAccountProvince(accountProvince);requestMessage.setAccountCity(accountCity);requestMessage.setRecDepType(recDepType);requestMessage.setBusiTransNO(busiTransNO);requestMessage.setRequestTime(requestTime);requestMessage.setSign(sign);System.out.println(requestMessage);Stringcontent=JSON.toJSONString(requestMessage);System.out.println("明文内容为:"+content);StringsecurityContent=HttpsAuthTools.encrypt(content);System.out.println("密文内容为:"+securityContent);wfjHttpsSend(securityContent);}

这个方法后台执行通过main调用就可以实现但是通过action调用这个方法就不行了

哪一句代码打印乱码了?
解决方案七:
引用5楼gaofuqi的回复:

Quote: 引用4楼qq526155988的回复:
Quote: 引用3楼gaofuqi的回复:
什么是存进去就乱码?存进哪里了?存了哪些字段值?“struts请求action”——这个我能理解成就是Http请求吗?

publicstaticvoidcreatecustomer(RequestMessagermsg){System.out.println(rmsg);RequestMessagerequestMessage=newRequestMessage();//CRB创建账户StringtransCode="CRB";Stringchannel="ch";StringuserNO="ch";Stringpassword="123456";StringaccountNo=rmsg.getAccountNo();StringaccountName=rmsg.getAccountName();SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMddHHmmssSSS");//可以方便地修改日期格式Datedate=newDate();Stringhehe=dateFormat.format(date);StringaliasAccount="changhw"+hehe;StringbankAllName=rmsg.getBankAllName();StringbankBranchName=rmsg.getBankBranchName();StringrecDepType=rmsg.getRecDepType();StringaccountProvince=rmsg.getAccountProvince();StringaccountCity=rmsg.getAccountCity();StringbusiTransNO=getUUID();StringrequestTime=DateTools.getDate("yyyy-MM-ddHH:mm:ss.SSS");Stringsign=MD5Utils.getMD5String(transCode+aliasAccount+channel+requestTime);requestMessage.setTransCode(transCode);requestMessage.setChannel(channel);requestMessage.setUserNO(userNO);requestMessage.setPassword(password);requestMessage.setAliasAccount(aliasAccount);requestMessage.setAccountNo(accountNo);requestMessage.setAccountName(accountName);requestMessage.setBankAllName(bankAllName);requestMessage.setBankBranchName(bankBranchName);requestMessage.setAccountProvince(accountProvince);requestMessage.setAccountCity(accountCity);requestMessage.setRecDepType(recDepType);requestMessage.setBusiTransNO(busiTransNO);requestMessage.setRequestTime(requestTime);requestMessage.setSign(sign);System.out.println(requestMessage);Stringcontent=JSON.toJSONString(requestMessage);System.out.println("明文内容为:"+content);StringsecurityContent=HttpsAuthTools.encrypt(content);System.out.println("密文内容为:"+securityContent);wfjHttpsSend(securityContent);}

这个方法后台执行通过main调用就可以实现但是通过action调用这个方法就不行了

哪一句代码打印乱码了?

我这是掉人家的接口人家那边存的是乱码!
解决方案八:
引用6楼qq526155988的回复:

Quote: 引用5楼gaofuqi的回复:
Quote: 引用4楼qq526155988的回复:
Quote: 引用3楼gaofuqi的回复:
什么是存进去就乱码?存进哪里了?存了哪些字段值?“struts请求action”——这个我能理解成就是Http请求吗?

publicstaticvoidcreatecustomer(RequestMessagermsg){System.out.println(rmsg);RequestMessagerequestMessage=newRequestMessage();//CRB创建账户StringtransCode="CRB";Stringchannel="ch";StringuserNO="ch";Stringpassword="123456";StringaccountNo=rmsg.getAccountNo();StringaccountName=rmsg.getAccountName();SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMddHHmmssSSS");//可以方便地修改日期格式Datedate=newDate();Stringhehe=dateFormat.format(date);StringaliasAccount="changhw"+hehe;StringbankAllName=rmsg.getBankAllName();StringbankBranchName=rmsg.getBankBranchName();StringrecDepType=rmsg.getRecDepType();StringaccountProvince=rmsg.getAccountProvince();StringaccountCity=rmsg.getAccountCity();StringbusiTransNO=getUUID();StringrequestTime=DateTools.getDate("yyyy-MM-ddHH:mm:ss.SSS");Stringsign=MD5Utils.getMD5String(transCode+aliasAccount+channel+requestTime);requestMessage.setTransCode(transCode);requestMessage.setChannel(channel);requestMessage.setUserNO(userNO);requestMessage.setPassword(password);requestMessage.setAliasAccount(aliasAccount);requestMessage.setAccountNo(accountNo);requestMessage.setAccountName(accountName);requestMessage.setBankAllName(bankAllName);requestMessage.setBankBranchName(bankBranchName);requestMessage.setAccountProvince(accountProvince);requestMessage.setAccountCity(accountCity);requestMessage.setRecDepType(recDepType);requestMessage.setBusiTransNO(busiTransNO);requestMessage.setRequestTime(requestTime);requestMessage.setSign(sign);System.out.println(requestMessage);Stringcontent=JSON.toJSONString(requestMessage);System.out.println("明文内容为:"+content);StringsecurityContent=HttpsAuthTools.encrypt(content);System.out.println("密文内容为:"+securityContent);wfjHttpsSend(securityContent);}

这个方法后台执行通过main调用就可以实现但是通过action调用这个方法就不行了

哪一句代码打印乱码了?

我这是掉人家的接口人家那边存的是乱码!

接口是wfjHttpsSend(securityContent);?

时间: 2024-08-30 08:26:22

web 访问 apache httpclient https的相关文章

在 Linux 中以交互方式实时查看Apache web访问统计

在 Linux 中以交互方式实时查看Apache web访问统计 无论你是在网站托管业务,还是在自己的VPS上运行几个网站,你总会有需要显示访客统计信息,例如前几的访客.访问请求的文件(无论动态或者静态).所用的带宽.客户端的浏览器,和访问的来源网站,等等. GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器.使用这款工具,你不仅可以浏览到之前提及的相关数据,还可以通过分析网站服务器日志来进一步挖掘数据 - 而且这一切都是在一个终端窗口实时输出的.由于今天的大

使用Apache HttpClient突破J2EE站点认证

商业性 Web 站点大都提供站点认证功能以保护某些受限资源,HTTP 协议和 J2EE 规范对 Web 站点的认证过程都已有了详尽的定义,常见浏览器都能根据相应协议提供对应的界面形式帮助用户完成站点的认证过程.但在某些情况下,我们需要编写程序直接获取站点的受保护资源,在这类情况下,就不能利用浏览器给定的界面去完成认证,而需要我们根据不同的协议人工地发送相应请求以完成整个认证过程.本文根据这种需求给出一个基于 Apache HttpClient 应用包的解决方案. J2EE 站点认证简介 出于安全

可视化分析WEB访问:logstalgia

今早我们转载了一篇文章<服务器遭受黑客DDoS攻击时的情景视频演示>,里面有一个视频,可视化的展示了网站被攻击时的访问情形. 这个视频是通过logstalgia软件(也叫做ApachePong)生成的,它是一个使用WEB日志可视化地展示WEB访问情况的开源软件. 其官方网站在:https://code.google.com/p/logstalgia/  当前版本是:1.0.3 (发布于2011年),可以运行在Linux上和Windows(已经编译好)上.它要求运行在一个支持OpenGL显卡的机

IE10访问apache 2.4会奇慢的解决办法

Windows版的apache 2.4. IE10访问apache 2.4会特别慢.有时Apache挂起了.只好重新开apache,但是重开后,也会好景不长,刚处理几个请求,就又变得奇慢了.Firefox就没有问题.其他浏览器没有测试,估计这跟apache设置有某种关系,这种设置不适合IE 10来访问.到网上找了不少资料,都没有解决方法.后来还是偶然的一个机会,是找别的资料碰到的.在apache里设置这些参数就可以了. AcceptFilter http noneAcceptFilter htt

Apache重定向https到http

问题描述 Apache重定向https到http 我现在有一个服务部署在glassfish上,需要用https访问,但glassfish的证书有问题,就想使用Apache的配置将https请求重定向到http,请教大神该怎么配置 解决方案 HTTPS重定向到HTTPapache做http和https反向代理Apache重定向 解决方案二: 证书有问题,重定向前就出错返回了

web 访问的jsp ,在浏览器中显示.rf

问题描述 web 访问的jsp ,在浏览器中显示.rf 应该是 http://localhost:8086/fjagri/main.jsp 在浏览器显示 http://localhost:8086/fjagri/main.rf 解决方案 http://hujin1123.iteye.com/blog/255064http://blog.sina.com.cn/s/blog_4ff708110100pxui.html

IIS服务器Web访问提示输入密码问题

iis|web|访问|服务器|问题 问:我的IIS服务器组件安装后之后,设置Web服务也没有问题,但是当访问指定好的网站是,却弹出密码提示窗口,要求输入密码.请问这是为什么? 答:访问站点出现密码提示窗,这是一个很常见的问题.您可以试着从下面几个方面入手检查. 访问的网页文件本身加了密.比如"默认Web站点"原主目录"X:\Inetpub\wwwroot"下的首页文件"iisstart.asp"访问时就需要密码. 没有设置允许匿名访问.在&quo

Windows Server 2008 RemoteApp(五) 远程桌面Web访问

在一般情况下,我们是通过客户端上的远程桌面连接器连接到远程桌面服务器,使用的端口默认是3389,但企业内部服务器的3389端口往往是不会在防火墙上对外部开放的,这时就要考虑另一种访问方法,通过部署远程桌面Web访问,使客户端可以通过http协议来访问到远程桌面和RemoteApp应用程序 1.安装远程桌面Web访问组件 按图点击[添加角色服务] 勾选[远程桌面Web访问] 远程桌面Web访问需要IIS组件支持,点击[添加所需的角色服务] 自动勾选上了IIS的一些组件 点击[安装] 点击[关闭]后

浅析C# web访问mysql数据库-整理归纳总结

本篇文章是对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结,需要的朋友可以参考下   基本对比 使用方式 使用场合 优缺点 是否需要安装 需要的dll网址 引用方式 程序内引用 程序初期确定使用MySql,前期添加引用 大多数情况下使用在类文件内,多数使用于aspx,ashx等带有后置代码的类文件中 可以安装,也可以直接引用dll 多数情况下直接引用即可 Connector/Net 6.7.4 web.config引用 后期维护接口发现程序内需要使用,这时不方便更改原有程序引用