qt用http协议访问webservice,用crypto的sha256签名
来源:互联网 发布:python wind 15分钟 编辑:程序博客网 时间:2024/06/11 17:35
代码如下
int Form::getUserFee(const QString& userNo){ QString sUrl = "http://192.168.0.102:8430/systemsoa/services/ChargeService.ChargeServiceHttpSoap12Endpoint/"; //sUrl += "getUserTotalArrear?bankCode=08&chgBranch=02129&chgTellerId=02754&userNo=123"; //sUrl += "getUserTotalArrear"; //QUrl::toPercentEncoding(sUrl);//进行url编码 QString bankCode = "08"; QString chgBranch = "02129"; QString chgTellerId = "02754"; int tag = 0; //QString url = "http://192.168.0.102:8430/systemsoa/services/ChargeService.ChargeServiceHttpSoap12Endpoint/"; QString key = "7bf6e35f7a7fe23c891d395a74382b64"; //QString userNo = "HR000069969"; QString orderId = "20150923135600"; QString orders = "20150902135603"; LogUtil::info("FormEc.getUserFee,userNo=" + userNo); CryptoPP::SHA256 sha256; //int DigestSize = sha256.DigestSize(); char byDigest[32]; QString aa = "0124"; aa = "bankcode=" + bankCode + "&chgbranch=" + chgBranch + "&chgteller=" + chgTellerId +"&orderid=" + orderId + "&userno=" + userNo + "&key=" + key; sha256.CalculateDigest((byte*)byDigest, (byte*)aa.toAscii().data(), aa.toAscii().length()); QByteArray ba = QByteArray::fromRawData(byDigest, 32); LogUtil::info("FormEc.getUserFee,sha=" + QString(ba.toHex())); QString content = QString("<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" ") + "xmlns:web=\"http://webservice.netcharge.ysxn.com\" xmlns:xsd=\"http://model.netcharge.ysxn.com/xsd\">" + "<soap:Header/>" + "<soap:Body>" + "<web:getUserTotalArrear>" + "<web:paramObj>" + "<xsd:bankCode>" + bankCode + "</xsd:bankCode>" + "<xsd:chgBranch>" + chgBranch + "</xsd:chgBranch>" + "<xsd:chgTeller>" + chgTellerId + "</xsd:chgTeller>" + "<xsd:chgTellerId>" + chgTellerId + "</xsd:chgTellerId>" + "<xsd:orderid>" + orderId + "</xsd:orderid>" + "<xsd:userNo>" + userNo + "</xsd:userNo>" + "<xsd:signature>" + QString(ba.toHex()) + "</xsd:signature>" + "</web:paramObj>" + "</web:getUserTotalArrear></soap:Body></soap:Envelope>"; //content = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"><soap:Body/></soap:Envelope>"; //LogUtil::info("FormEc.getUserFee,content=" + content); ecCode = "3001"; QNetworkRequest nr; nr.setUrl(sUrl); nr.setHeader(QNetworkRequest::ContentTypeHeader, " application/soap+xml;charset=UTF-8;action=\"urn:getUserTotalArrear\""); netManager->post(nr, content.toAscii()); connect(netManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(getUserFeeNet(QNetworkReply*))); return 0;}void Form::getUserFeeNet(QNetworkReply* reply){ QByteArray rdata = reply->readAll(); QString sret = QString::fromLocal8Bit(rdata.data()); LogUtil::info("FormEc.getUserFeeNet,reply=" + sret);}
另外,这个是用qtcreator创建的工程,要想链接crypto,在pro文件中增加了LIBS += -lcryptopp -lpthread
0 0
- qt用http协议访问webservice,用crypto的sha256签名
- qt用http协议访问webservice,用crypto的sha256签名
- 使用crypto api的签名和验证签名源代码
- 获取android应用签名证书的SHA1,MD5,SHA256值
- AndroidStudio查看签名的MD5值、SHA1值、SHA256值
- WebService之Http协议和SOAP协议的不同
- Socket与Webservice的区别、TCP/IP协议、HTTP协议
- kernel crypto hmac sha256 API call code
- 用Delphi7访问.NET 2.0的WebService
- http协议访问tracker的URL
- 基于HTTP协议的网络访问
- Http协议中访问的状态码
- QT QHttp 访问 WEBSERVICE 范例
- QT QHttp 访问 WEBSERVICE 范例
- QT+Gsoap访问cxf WebService
- HTTP访问协议封装
- HTTP协议授权访问
- HTTP协议授权访问
- Jquery通过Ajax方式提交Form表单
- ImageLoader must be init with configuration before using 错误解决方法c
- JS只能输入数字并限制长度的实用代码
- 递归算法
- 开源项目地址集合
- qt用http协议访问webservice,用crypto的sha256签名
- Android学习—自定义组件
- C++中的空类,默认产生哪些类成员函数?
- LeetCode -- Longest Valid Parentheses
- HDMIkey 格式转换
- iOS8.0 之后UIAlertView和UIActionSheet的创建方式的新变化
- 1.v4l2 framework框架
- Android bluedroid模块间关系
- 苹果6s正式销售,国内多渠道可购买