Java调用WebService客户端四种方式详解

需积分: 34 2 下载量 133 浏览量 更新于2024-09-10 1 收藏 47KB DOC 举报
Java 调用 WebService 客户端 Java 调用 WebService 客户端是指使用 Java 语言来调用远程的 WebService,实现与服务端的交互。WebService 客户端可以使用不同的协议来进行调用,包括 GET、POST、SOAP 和 CXF 等方式。 1. GET 协议 在 GET 协议中,参数将被追加到 HTTP 请求的 URL 中,格式为:?name1=value1&name2=value2。返回值将被当做简单的 XML 文档放入 HTTP 响应的正文中(没有 `<soap:Envelope>`)。例如: ```java URL url = new URL("http://example.com/webservice"); URLConnection connection = url.openConnection(); connection.setRequestMethod("GET"); InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String response = reader.readLine(); ``` 2. POST 协议 在 POST 协议中,参数将被传递到 HTTP 请求的正文中,格式为:name1=value1&name2=value2。返回值将被当做简单的 XML 文档放入 HTTP 响应的正文中(没有 `<soap:Envelope>`)。例如: ```java URL url = new URL("http://example.com/webservice"); URLConnection connection = url.openConnection(); connection.setRequestMethod("POST"); OutputStream outputStream = connection.getOutputStream(); outputStream.write("name1=value1&name2=value2".getBytes()); outputStream.flush(); InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String response = reader.readLine(); ``` 3. SOAP 协议 在 SOAP 协议中,SOAP 消息将被发送到 HTTP 请求的正文中,SOAP 响应将被发送到 HTTP 响应的正文中。例如: ```java import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); Client client = factory.createClient("http://example.com/webservice"); client.invoke(" methodName", "arg1", "arg2"); ``` 4. CXF 协议 CXF(Apache CXF)是一种基于 Java 的WebService 框架,提供了丰富的功能来调用 WebService。例如: ```java import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); Client client = factory.createClient("http://example.com/webservice"); client.invoke("methodName", "arg1", "arg2"); ``` 在使用 CXF 调用 WebService 时,需要添加以下依赖项: ```xml <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.4.5</version> </dependency> ``` 通过上述方式,可以使用 Java 语言来调用远程的 WebService,实现与服务端的交互。