VC++ 2010调用JAVA webservers 带HTTP头验证
2013-04-24 01:39
351 查看
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 。。
相关文章推荐
- Java jna学习之----VC++2010创建并调用动态链接库dll
- JAVA通过http调用验证码短信接口源码
- [C++] VC++ 实现HTTP调用(未验证)
- JAVA HttpClient调用Https 跳过证书验证
- C# 调用Java Webservice 加入SoapHeader 验证信息
- java Webservice(一)HttpClient远程调用
- Java-Web之Http协议的验证(Http响应头)
- 简单的java webservice 接口 C#调用java webservice(crud)
- 随web容器启动Java类,调用spring容器中的的bean及其方法
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- 【Error】JavaWeb: 严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
- maven使用jstl表达式和The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application解决
- Java调用weka.jar利用交叉验证方法进行分类
- java 客户端调用 .net webservice 添加
- TroubleShoot:.NET调用Java WebServices的问题解决
- php使用NuSoap调用java/C# webservice的中文乱码问题
- JavaWeb -- Struts2 验证框架
- Java正则表达式实现web端输入验证
- JavaWeb开发之三:HTTP协议
- java 中如何调用vc++的dll