网上建行怎样12306绑定银行卡l12306

& 首先12306网站前缀为&
& 用HttpClient去模拟发送请求时,对于URL用为&https&时,先要解决证书问题,有两种解决方案:
   a.使证书被信任。
   & 在查找相关资料时,对于这种方法有点麻烦,最后就没有去尝试,有兴趣的朋友可以试试。
& & & & b.使用httpClient时不检测服务器证书是否可信
    扩展HttpClient&类实现自动接受证书,因为这种方法自动接收所有证书,因此存在一定的安全问题,所以在使用这种方法前请仔细考虑您的系统的安全需求。
& & & & & &具体的步骤如下:
& & & & & & &&提供一个自定义的socket factory&(test.MySecureProtocolSocketFactory&)。这个自定义的类必须实现接口 & & & & & & & &
& & & & & & & mons.httpclient.protocol.SecureProtocolSocketFactory&,在实现接口的类中调用自定义的 & & & & & & & & & & & & &
& & & & & & & X509TrustManager(test.MyX509TrustManager)&
& & & & & & &&创建一个mons.httpclient.protocol.Protocol&的实例,指定协议名称和默认的端口号
& & & & & & & Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory (), 443);
& & & & & & &&注册刚才创建的https&协议对象
& & & & & & & Protocol.registerProtocol("https ", myhttps);
具体代码如下:
1 package org.study.meteor.ticket.
3 import java.io.IOE
4 import java.net.InetA
5 import java.net.InetSocketA
6 import java.net.S
7 import java.net.SocketA
8 import java.net.UnknownHostE
9 import java.security.KeyManagementE
10 import java.security.NoSuchAlgorithmE
11 import java.security.cert.CertificateE
12 import java.security.cert.X509C
14 import javax.net.SocketF
15 import javax.net.ssl.SSLC
16 import javax.net.ssl.TrustM
17 import javax.net.ssl.X509TrustM
19 import mons.httpclient.ConnectTimeoutE
20 import mons.httpclient.params.HttpConnectionP
21 import mons.httpclient.protocol.SecureProtocolSocketF
* MySecureProtocolSocketFactory.java.java Create on 下午1:15:03
* Copyright (c) 2012 by MTA.
* @author lmeteor
* @description 自定义的socket factory 实现自动接受证书
* @version 1.0
34 public class MySecureProtocolSocketFactory implements
SecureProtocolSocketFactory
private SSLContext sslcontext = null;
private SSLContext createSSLContext()
SSLContext sslcontext = null;
sslcontext = SSLContext.getInstance("SSL");
sslcontext.init(null, new TrustManager[]
{ new TrustAnyTrustManager() }, new java.security.SecureRandom());
catch (NoSuchAlgorithmException e)
e.printStackTrace();
catch (KeyManagementException e)
e.printStackTrace();
private SSLContext getSSLContext()
if (this.sslcontext == null)
this.sslcontext = createSSLContext();
return this.
public Socket createSocket(Socket socket, String host, int port,
boolean autoClose) throws IOException, UnknownHostException
return getSSLContext().getSocketFactory().createSocket(socket, host,
port, autoClose);
public Socket createSocket(String host, int port) throws IOException,
UnknownHostException
return getSSLContext().getSocketFactory().createSocket(host, port);
public Socket createSocket(String host, int port, InetAddress clientHost,
int clientPort) throws IOException, UnknownHostException
return getSSLContext().getSocketFactory().createSocket(host, port,
clientHost, clientPort);
public Socket createSocket(String host, int port, InetAddress localAddress,
int localPort, HttpConnectionParams params) throws IOException,
UnknownHostException, ConnectTimeoutException
if (params == null)
throw new IllegalArgumentException("Parameters may not be null");
int timeout = params.getConnectionTimeout();
SocketFactory socketfactory = getSSLContext().getSocketFactory();
if (timeout == 0)
return socketfactory.createSocket(host, port, localAddress,
localPort);
Socket socket = socketfactory.createSocket();
SocketAddress localaddr = new InetSocketAddress(localAddress,
localPort);
SocketAddress remoteaddr = new InetSocketAddress(host, port);
socket.bind(localaddr);
socket.connect(remoteaddr, timeout);
// 自定义私有类
private static class TrustAnyTrustManager implements X509TrustManager
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException
public X509Certificate[] getAcceptedIssuers()
return new X509Certificate[]
下面的是httpClient的具体实现类:
1 package org.study.meteor.ticket.
3 import java.io.BufferedInputS
4 import java.io.F
5 import java.io.FileOutputS
6 import java.io.IOE
7 import java.io.InputS
8 import java.io.UnsupportedEncodingE
9 import java.util.ArrayL
10 import java.util.L
12 import mons.httpclient.HttpC
13 import mons.httpclient.HttpE
14 import mons.httpclient.NameValueP
15 import mons.httpclient.methods.PostM
16 import mons.httpclient.params.HttpMethodP
17 import mons.httpclient.protocol.P
* HttpDoPostUtils.java Create on 下午3:08:18
* Copyright (c) 2012 by MTA.
* @author lmeteor
* @description 模拟HTTP发送请求得到报文
* @version 1.0
30 @SuppressWarnings("deprecation")
31 public class HttpDoPostUtils
private static HttpClient httpClient = null;
//指定协议名称和默认的端口号
Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory(), 443);
//注册刚才创建的https 协议对象
Protocol.registerProtocol("https", myhttps);
httpClient = new HttpClient();
* 发送请求报文,得到响应报文
* @param url
登录请求URL
* @param pList
是否包含请求参数
* @throws UnsupportedEncodingException
public static String doRequestToString(String url,List&NameValuePair& pList) throws UnsupportedEncodingException
//获得postMethod对象
PostMethod pmethod = getPostMethod(url);
pmethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
//判断是否包含参数
if(null != pList && pList.size() & 0)
pmethod.setRequestBody(pList.toArray(new NameValuePair[pList.size()]));
String value = "";
httpClient.executeMethod(pmethod);
value = pmethod.getResponseBodyAsString();
catch ( HttpException e )
e.printStackTrace();
catch ( IOException e )
e.printStackTrace();
* 获得12306网站的登录验证码
* @param url
* @param filePath
验证码保存路径 如:e:\\login.jpg
public static File doGetFile(String url,String filePath)
PostMethod pmethod = getPostMethod(url);
pmethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
httpClient.executeMethod(pmethod);
//得到响应中的流对象
InputStream in = pmethod.getResponseBodyAsStream();
//包装 并读出流信息
BufferedInputStream bis = new BufferedInputStream(in);
File file = new File(filePath);
FileOutputStream fs = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len = bis.read(buf);
if(len == -1 || len == 0){
file.delete();
file = null;
while (len != -1) {
fs.write(buf, 0, len);
len = bis.read(buf);
fs.flush();
fs.close();
catch (HttpException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return null;
public static List&NameValuePair& createNameValuePair(String params) {
List&NameValuePair& nvps = new ArrayList&NameValuePair&();
if (null != params && !params.trim().equals("")) {
String[] _params = params.split("&");
// userCookieList = new AttributeList();
for (int i = 0; i & _params. i++) {
int _i = _params[i].indexOf("=");
if (_i != -1) {
String name = _params[i].substring(0, _i);
String value = _params[i].substring(_i + 1);
nvps.add(new NameValuePair(name, value));
public static PostMethod getPostMethod(String url)
PostMethod pmethod = new PostMethod(url);
//设置响应头信息
pmethod.addRequestHeader("Connection", "keep-alive");
pmethod.addRequestHeader("Cache-Control", "max-age=0");
pmethod.addRequestHeader("User-Agent", "Mozilla/4.0 ( MSIE 8.0; Windows NT 6.0) ");
pmethod.addRequestHeader("Accept", "text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8");
模拟请求的类已经出来,现在开始进行模拟登录,登录前必须知道12306自身是怎样提交请求,并包含哪些参数到后台,通过firebug就很容易找到这些东西了。
12306登录之前会调用&&,后台返回一串JSON报文,如下:
1 {"loginRand":"652","randError":"Y"}
当randError为&Y&时,才对表单FORM提交,并且将loginRand的值初始化到表单里的隐藏域中,作为参数传到后台
现在最后一步就是拼接参数了,具体操作代码如下:
1 package org.study.meteor.ticket.
3 import java.io.BufferedR
4 import java.io.InputStreamR
5 import java.io.UnsupportedEncodingE
7 import org.study.meteor.ticket.domain.LoginBeforeV
9 import net.sf.json.JSONO
* Login.java.java Create on 下午1:48:42
* Copyright (c) 2012 by MTA.
* @author lmeteor
* @description
* @version 1.0
22 public class Login
* 获取验证码
* @param filePath
public static String getRandCode(String filePath)
String randCode = "";
/** 获取验证码 */
HttpDoPostUtils.doGetFile(PropertiesUtils.newInstance().getPropertiesValue("loginCode"),filePath);
randCode = readString("请输入登录验证码:");
return randC
* 实现登录操作
* @throws UnsupportedEncodingException
public static void doLogin() throws UnsupportedEncodingException
String randCode = getRandCode("e:\\login.jpg");
/** 登录前 提交得到报文 */
String loginBeforeVal = HttpDoPostUtils.doRequestToString(PropertiesUtils.newInstance().getPropertiesValue("loginBeforeValidatiorUrl"),null);
//将返回的JSON报文转换成指定的对象
JSONObject jsonObj = JSONObject.fromObject(loginBeforeVal);
LoginBeforeValidatior loginBefore = new LoginBeforeValidatior();
loginBefore = (LoginBeforeValidatior) JSONObject.toBean(jsonObj, LoginBeforeValidatior.class);
//拼接参数
StringBuffer params = new StringBuffer();
params.append("loginRand="+loginBefore.getLoginRand()).append("&")
.append("refundLogin=N").append("&")
.append("refundFlag=Y").append("&")
.append("loginUser.user_name="+PropertiesUtils.newInstance().getPropertiesValue("username")).append("&")
.append("nameErrorFocus=&")
.append("user.password="+PropertiesUtils.newInstance().getPropertiesValue("password")).append("&")
.append("passwordErrorFocus=&")
.append("randCode="+randCode).append("&")
.append("randErrorFocus=");
//像服务器发送登录请求 并返回对应的报文
String loginResponseText = HttpDoPostUtils.doRequestToString(PropertiesUtils.newInstance().getPropertiesValue("loginUrl"),HttpDoPostUtils.createNameValuePair(params.toString()));
System.out.println(loginResponseText);
* 多控制台读取验证码
* @param msg
* @throws Exception
private static String readString(String msg)
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.print(msg+": ");
return bufferedReader.readLine();
}catch(Exception e){
return "1245";
public static void main(String[] args) throws UnsupportedEncodingException
//Login login = new Login();
//login.doLogin();
Login.doLogin();
URL都是在配置文件中的,大致如下:
1 #12306登录之前调用URL
2 loginBeforeValidatiorUrl=https:///otsweb/loginAction.do?method=loginAysnSuggest
3 #12306登录验证码的地址
4 loginCode=https:///otsweb/passCodeAction.do?rand=sjrand
5 #登录URL
6 loginUrl=https:///otsweb/loginAction.do?method=login
8 username=xxxx
10 password=xxx
通过返回的HTML,如果看到自己的名字,就说明登录成功了。如果大家还想做什么动作,就可以发挥大家的想像力了。
阅读(...) 评论()建行开展“网上购车票,支付用建行”大型专题营销活动
日  来源:
  为回馈客户,建行于日至日开展“网上购车票,支付用建行”为主题的铁路客运电子支付营销活动,活动期间,通过台式机、笔记本电脑(不含平板电脑)登录铁路客户服务中心网站(),使用建行“个人网银支付”或“账号支付”购票成功的客户,单笔订单支付金额满50元(含)以上即可参加抽奖活动,将有机会获得包括ipad mini等在内的惊喜大奖。  据悉,此次活动礼品总价值超过500万,不仅是一次春运支付优惠盛宴,更是建行对亿万用户的倾情回馈。  此次活动期间,建行将通过全国13000多个营业网点、建行国际互联网网站()和建行客户服务电话95533(以及400-820-0588)为广大出行者提供细致周到的服务。  更多活动详情敬请关注@建行电子银行微博、“中国建设银行”微信公众账号,更多精彩送不停!
  本稿件所含文字、图片和音视频资料,版权均属所有,任何媒体、网站或个人未经授权不得转载,违者将依法追究责任。
齐鲁晚报多媒体数字版
按日期查阅建设银行网上支付轻松购买火车票-金投银行频道-金投网
网友评论:
来源:和讯新闻
编辑:wangshiyun
摘要:各大高校开学之际,建行推出网上支付轻松购买火车票服务。建设银行相关负责人介绍,建行网上支付购票,首先登录中国铁路客户服务中心网站(),注册成为网上购票用户
各大高校开学之际,推出网上支付轻松购买火车票服务。
相关负责人介绍,建行网上支付购票,首先登录中国铁路客户服务中心网站(),注册成为网上购票用户;预订所需车票后,在支付页面选择建设银行图标支付票款。建设银行提供两种支付方式,&账号支付&和&网上支付&。若票款在5000元以内,推荐使用&账号支付&功能,无需开通或使用盾,输入号或存折账号+手机短信验证码,简单2步即可完成付款;若票款在5000元以上,推荐使用建行网上银行,配合使用网银盾进行支付。
   
【免责声明】金投网发布此信息目的在于传播更多信息,与本网站立场无关。金投网不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。
☆ 全币种消费人民币还款☆ 有效期内无附加条件免年费☆ 全球用卡服务及商户礼遇☆ 高额旅行保险赠送
☆全国特惠商户任意游 商旅酒店预定伴您行
☆店内消费积分最高可折抵1%☆店内店外,均可想分就分☆ 商户礼遇计划
☆ 每月首笔取现免手续费 ☆ 每年农历大年初五“财星日”红包派送 ☆ 财星专享积分礼品
☆首张女性专属信用卡,具备三倍积分计划、自选保险计划等功能服务
☆网购享积分礼遇 ☆购物可用积分抵现金 ☆首笔取现交易手续费全免
   
利率:0.78%
利率:2.5%
利率:1.89%
利率:0.85%
利率:2.5%
100万元以上
利率:1.67%
利率:2.1%
利率:1.65%
利率:1.65%
☆ 全币种消费人民币还款☆ 有效期内无附加条件免年费☆ 全球用卡服务及商户礼遇☆ 高
☆全国特惠商户任意游 商旅酒店预定伴您行
☆店内消费积分最高可折抵1%☆店内店外,均可想分就分☆ 商户礼遇计划
☆ 每月首笔取现免手续费 ☆ 每年农历大年初五“财星日”红包派送 ☆ 财星专享积分礼品
利率:0.78%
利率:2.5%
利率:1.89%
利率:0.85%
存款计算器◆
信用卡计算器◆
贷款计算器◆
曾经有人在评价国内理财市场时,用了这样一段话:“理财市场如此不景...
第三十九期:
2016年1月,央行曾发行一批猴年贺岁普通纪念币,此次是第二批发行,两...
第三十八期
P2P网贷行业进入“敏感期”,监管层已经明确的监管方向,P2P客户资金...
银监会82号文盯上影子银行,以揭露商业银行不良资产。刚过小长假,一...
版权所有 (C) 金投网 gold.org 浙ICP备号 经营许可证编号:浙B2-
本站信息仅供投资者参考,不做为投资建议!联系管理员:webmaster@cngold.org 欢迎投稿:tougao@cngold.org
我的意见:网上购车票,支付用建行
 来源: 
来源:作者:责任编辑:yfs001
2016年春节即将向我们走来。中国人每年一次冬春之季的特色壮举——数亿之众的春运大潮即将拉开帷幕。每逢佳节倍思亲,亲人团聚才是节。此时此刻,远离家乡在外上学、打工、就业的人们以及打算在节日期间走亲访友的人们,如何能方便、快捷、省心地买到火车票,以便能够早日和家人团聚?建设银行秉承以“客户为中心”的经营理念,为广大客户提供了节日购票电子支付服务。只要客户持有建行储蓄卡、信用卡或存折,就可以上网简单操作,买火车票回家过年!为了回馈广大客户,日至日,建行推出以“网上购车票,支付用建行”为主题的第二期营销活动。在此期间,登录铁路客户服务中心网站进行建行“个人网银支付”、“账号支付”或登录“铁路12306”手机客户端进行建行手机支付成功购买火车票的客户,单笔订单支付金额满50元(含)以上即可参加抽奖,有机会获得苹果applewatch(一等奖)、50元善融商务个人商城电子券(二等奖)、20元手机话费(三等奖)等精美奖品,尽享网购乐趣。建行将通过全国辖属营业网点、建行国际互联网网站()和建行客户服务电话95533为广大购票客户提供服务支持。敬请关注@建行电子银行,了解更多精彩!
[责任编辑:yfs001]
一周图片排行榜
光明网版权所有

我要回帖

更多关于 阿里旅行 绑定12306 的文章

 

随机推荐