VC++ 2010调用JAVA webservers 带HTTP头验证

VC++ 2010调用JAVA webservers HTTP头验证

Hessian是搞定了,还有一个接口 webservers ,蛮熟悉的。应该没什么技术含量的了(但往往认为简单的东西确可能搞的很复杂,不管你信不信、、反正哥是信了)。用SOAP 协议,先装微软的SOAPTOOKIT3.0,看下soap toolkit 上的帮助文档,有demo 下来一看正好,调试一把,调用成功,返回不正确。。。。一直搞不清楚,,最后问java服务端的开发人员,才知道 他们会有一个MD5加密的东西只给一串哪密后的东西,具体放哪也不清楚,这它的坑爹呀。想来想去 还是一哥们提示了一下,用一个抓包软件,抓C#调javawebservers的包(C#调用javawebservers已经成功) 抓来一看,HTTP头中 User-Agent 后带一串验证信息。

POST /By/ServiceHTTP/1.1

User-Agent:“验证信息 不公开”

Content-Type:text/xml; charset=utf-8

SOAPAction:""

Host: 10.1.100.213

Content-Length: 1147

Expect: 100-continue

Connection:Keep-Alive

再抓我用soapTOOLKIT发送的包 发现User-Agent信息对不上。。就是他了 验证信息就放在User-Agent后面。想着只要能操纵SOAP发送的HTTP头就OK了,但看了半天SOAPTOOKIT的帮助文档。也没发现有操作HTTP head的函数。

无赖之下GOOGLE一堆。又转向CURL,这真是个好东东啊。。拿过来一看,什么都可以改,二下把HTTP头内容改掉。现在另一上问题出来了,之前用SOAP TOOKIT发送HTTPBODY 现在用CURL 怎么搞呢,手动拼字符串,拼个字符包,太不灵活了,又有一个想法,能不能用SOAP TOOKIT生成SOAP包但不发送,生成soap包 用一个函数获取这个包再用curl发送,但看了半天文档,一方面全是英文的,头晕,没找到一个函数呀,,算了还是用MSXML吧,生成一个xml包,生成时候 因为SOAP xml包内容如下

<?xml version="1.0"encoding="utf-8"?>

<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><allotACTestxmlns="http://manage.wms.###.com"><in0xmlns="">HELLO WORLD this istest</in0></allotACTest></soap:Body></soap:Envelope>

注意到xml会包含命名空间,生成时也遇到一点麻烦,好在都解决了

现在生成了,POST过去OK  

成功接收到的xml包

<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:allotACTestResponsexmlns:ns1="http://manage.wms.###.com"><ns1:out>Current timeis Tue Apr 23 15:30:19 CST 2013; your send is HELLO WORLD this istest</ns1:out></ns1:allotACTestResponse></soap:Body></soap:Envelope>

 

收到 包后得自己再写一个函数取xml里面属性值的,可以用MSXML也可以 自己写 函数。提取字符串的方法

总结:不管是HESSIAN 还是 WEBSERVERS,说到底都是SOKET,SOKET发送XML文件 发一个接一个,OK 。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值