`

socket调用websercvice

阅读更多
交谈中请勿轻信汇款、中奖信息、陌生电话,勿使用外挂软件。

☆蓝蓝心情★(357079649)  10:25:41
等下我给你讲下,hack下载一个soapui先
JAVA_老潘(654821093)  10:34:19
什么时候讲阿
☆蓝蓝心情★(357079649)  10:35:48
11:00
JAVA_老潘(654821093)  10:37:34
你在哪讲阿
QQ?
还是yy 还是
☆蓝蓝心情★(357079649)  10:37:56
QQ
JAVA_老潘(654821093)  10:42:24

快到时间了
怎么讲阿 语音吗 还是
☆蓝蓝心情★(357079649)  10:48:35
QQ
打字
☆蓝蓝心情★(357079649)  10:55:53
hack不在?
小黑哥(1377252306)  10:56:40

☆蓝蓝心情★(357079649)  11:02:35
时间到了
比如,现在通过socket 调用一个手机号码来源地查询的webservice(http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl), 我做一个详细讲解, hack2003回头自己看下,解决自己的问题
☆蓝蓝心情★(357079649)  11:06:43
换一个webservice服务, 这个查号码的需要用户ID,我无法提供,  换为:
http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl
QQ号码是否在线查询服务
JAVA_老潘(654821093)  11:16:37
这个还是webservice接口阿  那用socket怎么调你这个阿
☆蓝蓝心情★(357079649)  11:17:06
我就是在给你们将这个
等下,做一个demo出来,5分钟

JAVA_老潘(654821093)  11:17:35
嗯 
☆蓝蓝心情★(357079649)  11:29:43
package cn.mc.arch.demo;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class SoapDemo {

/**
* *
*
* @param args
*/
public static void main(String[] args) throws Exception {
Socket socket = new Socket("webservice.webxml.com.cn", 80);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));

out
.println("POST http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx HTTP/1.1");
out.println("Accept-Encoding: gzip,deflate");
out.println("Content-Type:text/xml;charset=UTF-8");
out.println("SOAPAction: \"http://WebXml.com.cn/qqCheckOnline\"");
out.println("Host: webservice.webxml.com.cn");
out.println("Connection: Keep-Alive");
out.println("User-Agent: mclaren-test");

StringBuffer buffer = new StringBuffer();

buffer
.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://WebXml.com.cn/\">");
buffer.append("<soapenv:Header/>");
buffer.append("<soapenv:Body>");
buffer.append("<web:qqCheckOnline>");
buffer.append("<web:qqCode>641069519</web:qqCode>");
buffer.append("</web:qqCheckOnline>");
buffer.append("</soapenv:Body>");
buffer.append("</soapenv:Envelope>");

String body = buffer.toString();

out.println("Content-Length: " + body.getBytes().length);
out.println();

out.println(body);

StringBuffer response = new StringBuffer();
char[] buf = new char[128];
do {
// clear buffer
for (int i = 0; i < buf.length; i++) {
buf[i] = 0;
}

int rt = in.read(buf);

String s = new String(buf);
response.append(s);

if (rt < 128) {
break;
}
} while (true);

in.close();
out.close();
socket.close();

System.out.println("Response is " + response);
}
}

注意这个demo, 按照soap协议,发起请求
响应截图

HTTP/1.1 200 OK
Date: Fri, 05 Apr 2013 03:29:30 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 367

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns: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><qqCheckOnlineResponse xmlns="http://WebXml.com.cn/"><qqCheckOnlineResult>N</qqCheckOnlineResult></qqCheckOnlineResponse></soap:Body></soap:Envelope>
☆蓝蓝心情★(357079649)  11:30:51
这是完整的响应体,大家可以发现这个QQ的在线状态为 N

☆蓝蓝心情★(357079649)  11:31:52

用老潘的QQ号试试,结果为:

老潘应该是隐身了
JAVA_老潘(654821093)  11:33:01

我在测呢
☆蓝蓝心情★(357079649)  11:33:28
换成我自己的QQ,则是:

JAVA_老潘(654821093)  11:34:40
你发的图在我这全破了
☆蓝蓝心情★ 分享文件 11:35:14
"ws.rar" 下载
JAVA_老潘(654821093)  11:35:24
这个牛B
☆蓝蓝心情★(357079649)  11:35:25
代码demo,群共享ws.rar
JAVA_老潘(654821093)  11:35:35
我想看谁在线 直接运行这个
☆蓝蓝心情★(357079649)  11:35:39
下载到本地研究
JAVA_老潘(654821093)  11:35:42
 
嗯我刚刚测试了
没问题
☆蓝蓝心情★(357079649)  11:36:02
ok
JAVA_老潘(654821093)  11:36:10

☆蓝蓝心情★(357079649)  11:36:42
socket是一切应用协议的基础,不要把它和soap、rmi、http等认为是两码事,没有socket做底层通信,它们都无用武之地
JAVA_老潘(654821093)  11:37:28
rmi是远程序调用 我没弄过这个
蓝蓝有demo吗
☆蓝蓝心情★(357079649)  11:38:11
RMI你把它当作一个概念就好
无需当成具体的技术,和webservice一样
JAVA_老潘(654821093)  11:38:26
好像没有socket这么方便测试阿

☆蓝蓝心情★(357079649)  11:38:38
只要自己愿意,可以以任何技术方式,实现RMI
JAVA_老潘(654821093)  11:41:28
那个webservice是腾讯发布的吧
☆蓝蓝心情★(357079649)  11:41:57
不晓得是哪里的,我为给你们做demo,随便在网上找的
JAVA_老潘(654821093)  11:42:24


☆蓝蓝心情★(357079649)  11:44:20
这几天抽空给大家讲下hadoop
JAVA_老潘(654821093)  11:44:20
为什么我本地ping不通那个地址呢
☆蓝蓝心情★(357079649)  11:44:36
不给ping不一定是连不上
服务器一般都会做禁止ping的设置的
JAVA_老潘(654821093)  11:45:03
哦  明白了
☆蓝蓝心情★(357079649)  11:47:02
对于对hadoop有兴趣的同学,请申请一个 VPN,我们可以成立一个技术小组, 利用大家各自的机器,通过VPN网络搭建一个hadoop集群,供自己和群社区进行hadoop研究
JAVA_老潘(654821093)  11:48:55
嗯 今天大家都出去玩了应该



交谈中请勿轻信汇款、中奖信息、陌生电话,勿使用外挂软件。

骇客2003(121003923) 2013/4/5 15:49:25
我想了解
socket和websevice对接
☆蓝蓝心情★(357079649) 2013/4/5 15:53:09
看demo
骇客2003(121003923) 2013/4/5 15:53:17
在哪?
ws.rar?
骇客2003(121003923) 2013/4/5 15:54:08
前天c和http通过socket对url对接
大概让我懂的
sockets是系统层面的
☆蓝蓝心情★(357079649) 2013/4/5 15:55:07

骇客2003(121003923) 2013/4/5 15:56:04

看到了.果然和我想的一样
只需要在发送的时候,将头协议加上去
和http一样呀
☆蓝蓝心情★(357079649) 2013/4/5 15:56:25
是不是你想要的东西?
骇客2003(121003923) 2013/4/5 15:56:31
是呀
☆蓝蓝心情★(357079649) 2013/4/5 15:56:36
SOAP就是基于HTTP的包装
好,对你有帮助就好
骇客2003(121003923) 2013/4/5 15:56:53
http是基于sockets的吗?
你里面的soap协议换成http.就支持sockets和http通信了
JAVA_老潘(654821093) 2013/4/5 15:57:36
蓝蓝把wsdl给封装了
然后post
☆蓝蓝心情★(357079649) 2013/4/5 15:57:43
不用wsdl了
wsdl只是帮助我们分析接口信息
JAVA_老潘(654821093) 2013/4/5 15:58:09
post很关键吧
骇客2003(121003923) 2013/4/5 15:59:20

JAVA_老潘(654821093) 2013/4/5 15:59:58
按这样说soap 是不是属于http协议的子集呢
骇客2003(121003923) 2013/4/5 16:00:30
不是
二种不一样的
骇客2003(121003923) 2013/4/5 16:00:45
但都尊循sockets协议
http/webservice都尊循sockets进行开发的
但我不知道,系统的网络通迅是不是只支持sockets
JAVA_老潘(654821093) 2013/4/5 16:02:32
我还搞不明白soap和http的关系
骇客2003(121003923) 2013/4/5 16:02:54
二者都是协议
没啥关系
JAVA_老潘(654821093) 2013/4/5 16:03:07

骇客2003(121003923) 2013/4/5 16:08:31
蓝蓝
☆蓝蓝心情★(357079649) 2013/4/5 16:08:42

骇客2003(121003923) 2013/4/5 16:08:57
soap是不是只需要你上面的协议头
JAVA_老潘(654821093) 2013/4/5 16:09:01
蓝蓝
骇客2003(121003923) 2013/4/5 16:09:08
内容的xml可以根据情况来定?
骇客2003(121003923) 2013/4/5 16:09:50
soapenv:Envelope这个开头和结束
soapenv:Envelope这个可以随便定义吗?只要尊循我自已的一些定义?
☆蓝蓝心情★(357079649) 2013/4/5 16:10:35
soapenv:Evnelope是规范
是soap body的规范
骇客2003(121003923) 2013/4/5 16:11:19
soap body里面的xml可以自定义,其它的都是协议规范格式,必须带的?
☆蓝蓝心情★(357079649) 2013/4/5 16:11:32
是的
骇客2003(121003923) 2013/4/5 16:12:09
wsdl应该是规范的是body里面的xml吧?
☆蓝蓝心情★(357079649) 2013/4/5 16:13:05
这样,这个我先不给你说
你自己去查看下soap specification
你需要系统地了解soap,而不是局部
JAVA_老潘(654821093) 2013/4/5 16:13:52
我也不懂soap
骇客2003(121003923) 2013/4/5 16:14:12
低层是c,要把c程序烧入到设备上的
☆蓝蓝心情★(357079649) 2013/4/5 16:14:13
做了多年的webservice开发,很多人仍然是看不懂wsdl的,这是一个严重的问题。  我建议大家系统地对soap(也包括其他的工业技术)进行学习
骇客2003(121003923) 2013/4/5 16:14:33
他们是不支持 webservice,但可以用sockets
如果要通信,需要了解的是不是很多
骇客2003(121003923) 2013/4/5 16:16:06
我老板写C的.当时我说sockets只需要尊循soap协议通信,就可以和我上面的webservice进行对接操作了
☆蓝蓝心情★(357079649) 2013/4/5 16:17:06
你老板是对的
JAVA_老潘(654821093) 2013/4/5 16:17:52
我怎么总觉得webservice没必须搞得那么复杂
只用一些简单的功能就能够满足需求了呢
骇客2003(121003923) 2013/4/5 16:18:07
我老板不懂.是我说的
骇客2003(121003923) 2013/4/5 16:18:42
但我不知道协议本身要放那些值进行调用和传送
他的c主要做的就是内存的处理.大部分是二进制传送
yangcq(526896071) 2013/4/5 16:19:18
截取协议包看看数据结构
骇客2003(121003923) 2013/4/5 16:19:28
怎么截
yangcq(526896071) 2013/4/5 16:20:14
下载软件
yangcq(526896071) 2013/4/5 16:21:54
清明大家都没回家吗
JAVA_老潘(654821093) 2013/4/5 16:22:08
我在图书馆
不回
yangcq(526896071) 2013/4/5 16:23:04
没带电脑回家- -
yangcq(526896071) 2013/4/5 16:23:08
好无聊
骇客2003(121003923) 2013/4/5 16:24:35

可以回家是很幸福的
yangcq(526896071) 2013/4/5 16:25:18
老家这边下雨
天天也是宅在家里
JAVA_老潘(654821093) 2013/4/5 16:25:42
好像清明节10年有9年下雨
至少
骇客2003(121003923) 2013/4/5 16:26:01
春季
骇客2003(121003923) 2013/4/5 16:30:58
wsdl
是真心看不懂
只能看个大概
骇客2003(121003923) 2013/4/5 16:32:06
<wsdl:message name="getAttRecResponse">
<wsdl:part name="getAttRecReturn" type="xsd:string"></wsdl:part>
</wsdl:message>
返回string类型的值
<wsdl:message name="getAttRecRequest">
<wsdl:part name="date" type="xsd:string"></wsdl:part>
<wsdl:part name="pageNum" type="xsd:int"></wsdl:part>
<wsdl:part name="pageSize" type="xsd:int"></wsdl:part>
</wsdl:message>
传三个参数
<wsdl:portType name="YunDaSOA">
<wsdl:operation name="getAttRec" parameterOrder="date pageNum pageSize">
<wsdl:input message="impl:getAttRecRequest" name="getAttRecRequest"></wsdl:input>
<wsdl:output message="impl:getAttRecResponse" name="getAttRecResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
骇客2003(121003923) 2013/4/5 16:33:20
方法支持读和写以及方法,参数,对应类
yangcq(526896071) 2013/4/5 16:33:29
嗯 根据wsdl文档生成代码
骇客2003(121003923) 2013/4/5 16:33:44
wsdl:binding 就看不懂了
骇客2003(121003923) 2013/4/5 17:25:32
分享到:
评论
1 楼 qq1160817999 2013-04-07  

相关推荐

    对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.zip

    当我们处理TCP连接时,必须了解如何正确地管理和关闭Socket,因为不恰当的操作可能导致一些异常情况,例如标题中提到的问题:“对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认...

    java服务器客户端Socket调用基本功能

    本文将深入探讨如何使用Java实现服务器客户端之间的Socket调用,并通过具体的示例代码来阐述基本功能。 首先,我们需要理解Socket的工作原理。Socket可以被视为网络上的端点,允许应用程序在两个网络连接之间建立...

    Socket调用服务器bat

    在本场景中,"Socket调用服务器bat"指的是使用Socket接口与服务器进行交互的批处理(bat)文件。批处理文件是Windows操作系统中的一种脚本文件,用于执行一系列命令。我们将探讨Socket编程的基本概念、批处理文件的...

    基于socket实现的rpc调用demo

    本示例是基于Socket实现的RPC调用Demo,让我们深入探讨一下这个主题。 首先,我们要理解Socket。Socket是网络编程中的基本概念,它为应用程序提供了低级别的网络通信接口。在TCP/IP协议栈中,Socket是应用层与传输...

    Linux之socket调用分析.zip_linux_socket

    在本资料"Linux内核(4.9.9)之socket调用分析"中,我们将深入探讨Linux 4.9.9内核版本中的Socket API调用及其工作原理。 一、Socket基本概念 Socket是网络通信的基础,它提供了进程间的数据传输接口。在Linux中,...

    SOCKET调用演示

    【标题】:SOCKET调用演示 在计算机网络编程中,Socket是进程间通信的一种方式,尤其在网络环境中,它提供了应用程序之间数据传输的基础。"SOCKET调用演示"是一个简单的示例,旨在帮助初学者理解如何在命令行环境下...

    socket多线程调用webservice服务实现系统对接

    利用socket thread dom4j log4j axis2 soap PBE加解密等相关技术实现的socket协议调用webservice服务。 由于银行后台核心系统普遍采用的是UNIX下C/C++的开发平台,如果需要调Web Service往往需要借助一些第三方的库...

    MFC中socket调用示例程序

    例如,当用户点击“连接”按钮时,会触发一个消息,相应的处理函数(如 `OnConnect`)会被调用,该函数会创建或连接到服务器的socket。 4. **初始化Winsock**: 在使用MFC的socket功能之前,必须先调用 `AFDInit` ...

    java对Socket进行了封装,可以通过注解调用双端的方法,让socket使用起来极其简单方便,是一个jar包

    所以我对socket进行了封装,客户端和服务端可以通过配置注解,让双方相互调用注解方法,提供了专门的工具类,让注解方法可以支持返回list或map等集合或其他的类型,三行代码你就可以完美的使用socket进行通信,支持...

    java异步socket调用[文].pdf

    Java 异步Socket调用是J2SE 1.4版本引入的重要特性,这一特性极大地改进了Java在网络编程中的性能和效率。在之前的版本中,Socket通信通常采用同步方式进行,这意味着输入输出操作必须等待完成才能进行下一步,这在...

    java异步socket调用.pdf

    Java 异步Socket调用是Java 1.4版本(代号Merlin)引入的一项重要特性,它极大地改进了Java的网络编程能力。在引入异步输入输出(Asynchronous Input/Output, AIO)机制之前,Java程序员在处理Socket通信时通常采用...

    远程调用技术代码追踪(socket) 之二

    在本文中,我们将聚焦于使用Socket和WebService这两种远程调用技术,并探讨代码追踪和底层实现细节。 首先,Socket通信是网络编程的基础,它提供了进程间的低级别通信接口。在远程调用中,Socket用于建立客户端和...

    C#socket通信调用Brother打印机(客户端和服务端)源代码

    在本文中,我们将深入探讨如何使用C#进行Socket通信,并以调用Brother打印机为例,讲解客户端和服务端的实现过程。Socket编程是网络通信的基础,它允许程序通过网络发送和接收数据。C#语言提供了丰富的类库来支持...

    HP-Socket开发TCP Server

    `,然后调用`server_socket.Create()`函数初始化socket,再使用`server_socket.Bind()`绑定到特定的IP地址和端口号,最后使用`server_socket.Listen()`开始监听。 3. **接受连接**: 当有客户端连接请求时,服务器端...

    socket服务发布及客户端调用

    Socket服务发布及客户端调用是网络编程中的重要概念,主要用于实现不同计算机间的通信。Socket源自英文单词"插座",在计算机领域中,它被用来比喻两台计算机之间的连接点,允许它们之间交换数据。本篇将深入探讨...

    HTML5调用Socket接口例子

    socket.onopen = function(event) { console.log('Connection opened'); // 发送消息到服务器 socket.send('Hello Server!'); }; // 接收到服务器数据时触发onmessage事件 socket.onmessage = function(event) {...

    Socket连接控制打印机输出

    2. **建立连接**:调用Socket对象的connect()方法,与服务器(即打印机)建立连接。 3. **数据传输**:一旦连接建立,我们可以通过Socket的输入/输出流发送和接收数据。在打印控制中,数据通常是打印机语言,如PCL或...

    VB调用VC接口的socket客户端

    标题中的“VB调用VC接口的socket客户端”指的是在Visual Basic (VB)应用程序中通过动态链接库(DLL)调用由Visual C++ (VC)编写的Socket通信接口,实现网络通信功能。Socket是网络编程中的一种接口,它允许程序通过...

    C#异步socket接收组件和调用示例

    本文将详细解析“C#异步socket接收组件和调用示例”中的关键知识点,帮助开发者理解如何利用异步Socket进行高效的数据传输。 1. **异步Socket编程**: 异步Socket编程是C#中实现网络通信的一种重要方式,它允许...

    客户端网页调用socket长链接(无服务端)

    不过,这里提到的是客户端直接调用已经存在的Socket服务,所以我们主要讨论如何在HTML页面中实现这个功能。 首先,`socket.io.js` 是一个流行的库,它为Web应用提供了实时双向通信的能力,简化了WebSocket API的...

Global site tag (gtag.js) - Google Analytics