webservice调用方式:
1.httpget
2.httpost
3.httpsoap
其中soap的优点是可以传递结构化的数据,前两者不行。
webservice的通讯原理是其底层也是通过http传输的。所以手动连接webservice server有两种方式。
第一种是使用jaxm
参考如下:
http://www.cnblogs.com/chenying99/archive/2013/05/23/3094128.html
这种方法比较复杂,使用soapconnection
public static void post2WebService(String content, String url) { try { // First create the connection SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory .newInstance(); SOAPConnection connection = soapConnFactory.createConnection(); // Next, create the actual message MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage message = messageFactory.createMessage(); // Create objects for the message parts SOAPPart soapPart = message.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody body = envelope.getBody(); // String to inputstream InputStream inputstream = new ByteArrayInputStream( content.getBytes("UTF-8")); // Populate the Message StreamSource preppedMsgSrc = new StreamSource(inputstream); soapPart.setContent(preppedMsgSrc); // Save the message message.saveChanges(); // Send the message and get a reply // Set the destination URLEndpoint destination = new URLEndpoint(url); // Send the message SOAPMessage reply = connection.call(message, destination); // Create the transformer TransformerFactory transformerFactory = TransformerFactory .newInstance(); Transformer transformer = transformerFactory.newTransformer(); // Extract the content of the reply Source sourceContent = reply.getSOAPPart().getContent(); // Set the output for the transformation StringWriter writer = new StringWriter(); // StreamResult result = new StreamResult(System.out); StreamResult result = new StreamResult(writer); transformer.transform(sourceContent, result); System.out.println("result : " + writer.toString()); // Close the connection connection.close(); } catch (Exception e) { LOG.error("post2WebService error : " + e.getMessage()); } }
此处是一小段代码参考,如何将streamResult转换为String的
try { StreamSource source = new StreamSource(new StringReader("<xml>blabla</xml>")); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); transformer.transform(source,result); String strResult = writer.toString(); } catch (Exception e) { e.printStackTrace(); }
这里还需要使用到jaxm-api.jar
第一种方法较为复杂,现在介绍第二种方法,直接使用httpConnection post message
public static String sendPost2WS(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); //open url connect URLConnection conn = realUrl.openConnection(); //set common properties conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); //send POST request must set 2 lins below conn.setDoOutput(true); conn.setDoInput(true); //get URLConnection object out put stream out = new PrintWriter(conn.getOutputStream()); //send request parameters out.print(param); // flush out put stream cache out.flush(); //define BufferedReader to get the URL response in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("send POST has error : "+e.getMessage()); e.printStackTrace(); } //close in & out put stream finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; }
相关推荐
本文将深入探讨这两个概念,并结合"DashBoard连接Webservice Demo"的主题,介绍如何将它们整合以实现更高效的数据管理和分析。 首先,让我们来理解一下“Dashboard”。在信息技术中,Dashboard通常指的是一个交互式...
2. **生成客户端代码** - 使用SDK、工具或手动编写代码来创建客户端,这个客户端会处理与服务的通信细节。 3. **调用服务** - 在客户端代码中,根据服务接口定义,构造请求并发送,然后接收并解析响应。 4. **异常...
如果WebService需要访问数据库,建议将连接字符串配置在`web.config`文件中,以便于管理和维护。 **操作步骤**: 1. 打开项目中的`web.config`文件。 2. 添加或修改`connectionStrings`节点以包含数据库连接字符串...
4. **建立连接**:在创建HTTPS连接时,指定使用我们手动加载的证书进行验证。 在实际开发中,处理HTTPS和Web Service调用时,我们还需要关注错误处理,如证书链不完整、证书过期、未信任的CA等问题。此外,对于性能...
2. **C#开发Webservice**: 在C#中,可以使用.NET框架的ASP.NET技术创建Web服务。首先,创建一个新的ASP.NET Web服务项目,然后定义一个或多个公共方法,这些方法将在服务中公开。例如,为Delphi客户端提供操作...
- 编写SOAP请求:根据Web服务的WSDL(Web Service Description Language)定义,手动编写或者利用工具自动生成SOAP请求的XML结构。 - 发送请求:使用HTTP POST方法,将SOAP请求发送到Web服务的URL。 - 处理响应:...
这段代码展示了如何创建一个SOAP连接对象,并通过这个对象实例化WebService接口,进而调用WebService的方法。调用完成后,通过`messagebox`函数显示结果。 #### 三、总结 通过上述步骤,我们可以清晰地了解到如何...
- 可以通过Maven或者手动添加依赖的方式引入WebService相关的库文件,例如Apache CXF、Apache Axis2等。 3. **编写WebService接口和服务实现类**: - 创建一个Java接口,定义所需的方法。 - 实现该接口,编写...
3. **WSDL编写**:学习如何手动或自动生成WSDL文件,以描述你的服务接口。 4. **服务的调用**:掌握如何在客户端代码中使用HTTP请求调用WebService,解析返回的SOAP响应。 5. **安全与认证**:理解如何为WebService...
5. 创建客户端:使用CXF的WSDL2Java工具,从服务的WSDL生成客户端代码,或者手动编写客户端代码调用服务。 总的来说,CXF提供了一套完整的框架,简化了Web服务的开发和使用过程。通过合理的JAR包配置,开发者可以...
标题“pb webservice”指的是在PowerBuilder(简称PB)中调用Web Service的相关技术。PowerBuilder是一款强大的客户端/服务器应用程序开发工具,而Web Service是一种基于开放标准(如SOAP、WSDL和UDDI)的分布式计算...
在 ServerPush 场景下,AJAX 发挥了关键作用,允许浏览器持续不断地向服务器询问新数据,而无需用户手动触发。 **Webservice** 是一组提供特定功能的接口,可以通过网络进行调用。在 AJAX 中,Webservice 可以作为...
在现代IT环境中,与Web服务的交互变得越来越重要,而PB9(PowerBuilder 9)提供了调用WebService的能力,使得PB应用程序能够无缝连接到基于Web的API和服务。本文将深入探讨PB9如何调用WebService,包括必要的步骤、...
1. **Mybatis的优势**:Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它支持动态SQL,可以更方便地处理复杂的查询条件。 2. **Mybatis配置**:Mybatis通过配置文件或注解来定义数据库连接、SQL...
- 通过`RPCServiceClient`类来初始化一个客户端连接。 - 设置目标服务的URL地址,通常包含`.wsdl`后缀,用于获取服务的WSDL文档。 - 使用`QName`对象来指定调用的方法名以及方法所在的命名空间。 - 调用`...
- 客户端不再直接使用Web引用,而是通过.NET的SOAP客户端API(如System.ServiceModel)手动构建请求和解析响应。这通常涉及理解WSDL文件,创建适当的SOAP消息,并发送到服务端。 4. **服务端是.NET编写的,客户端...
setp1: 在事务窗口输入 Tcode: soamanager ,有可能无法打开连接窗口,在无法打 开新窗口的情况下,输入如下地址 setp2:进入 Web 服务配置 setp3:找到企业服务 Class 类 ,双击打开【配置】-->【创建】-->【手动...
这样,开发者无需手动编写复杂的SOAP请求和解析响应,可以直接调用生成的客户端类来与Web Service交互。 3. **SOAP协议**:SOAP是Web Service的核心协议,它规定了消息的结构和传输方式。生成的客户端代码通常会...
这种方式需要手动构建和解析XML消息,虽然灵活性高,但相比前两种方法,开发工作量会增加。 4. **JDBC/ODBC Bridge to Web Services**: 对于已经具备数据库连接能力的应用,PB 11.5也提供了通过JDBC或ODBC桥接器...