protected ResponseMessage httpProtocol_http(String businessServiceName,RequestMessage message) throws Exception {
String url_str = protocol + ":" + "//" + host + ":" + port + uri;
logger.debug("asip服务地址:" + url_str);
URL url = new URL(url_str);
URLConnection connection = url.openConnection();
/**
* 构建soap消息
*/
StringBuffer soapMessage = new StringBuffer();
soapMessage.append("<soap:Envelope xmlns:soap=\"" + SOAP_NS + "\" soap:encodingStyle=\"" + ENCODINGSTYLE_NS
+ "\" xmlns:xsd=\"" + XSD_NS + "\" xmlns:xsi=\"" + XSI_NS + "\">");
soapMessage.append("<soap:Body>");
soapMessage.append("<ns1:call xmlns:ns1=\"http://service.asip.regaltec.com/\">");
soapMessage.append("<ns1:in0>").append(businessServiceName).append("</ns1:in0>");
soapMessage.append("<ns1:in1>").append(StringEscapeUtils.escapeXml(message.toString())).append(
"</ns1:in1>");
soapMessage.append("<ns1:in2>").append("").append("</ns1:in2>");
soapMessage.append("</ns1:call>");
soapMessage.append("</soap:Body>");
soapMessage.append("</soap:Envelope>");
logger.debug("发送到asip的soap消息内容:" + soapMessage);
byte[] b = soapMessage.toString().getBytes();
HttpURLConnection con = (HttpURLConnection) connection;
con.setRequestProperty("Content-Length", String.valueOf(b.length));
con.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
OutputStream out = con.getOutputStream();
out.write(b);
out.close();
// 发送完毕
// 读取响应
InputStreamReader isr = new InputStreamReader(con.getInputStream());
BufferedReader in = new BufferedReader(isr);
String inputLine = null;
StringBuffer result = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
result.append(inputLine);
}
in.close();
logger.debug("接收到asip的soap消息内容:" + result);
/**
* 解析soap消息
*/
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(result.toString())));
String callResponse = getAsipReturnString(doc);
return ResponseMessage.newInstance(callResponse);
}
分享到:
相关推荐
2. **设置请求方法**:调用`setRequestMethod("POST")`,因为通常调用WebService都是POST方式。 3. **设置请求属性**:设置请求头,比如`Content-Type`应设为`text/xml;charset=UTF-8`,表示发送的数据是XML格式。 4...
在调用WebService时,POST方法可以承载请求参数,将其封装在请求体中发送到服务端。 1. **构建HTTP请求** 在Java中,可以使用`java.net.URL`、`java.net.HttpURLConnection`或第三方库如Apache HttpClient来构建...
2. **使用HttpURLConnection调用WebService**: - 如果Web Service不使用SOAP,而是RESTful API,可以使用Android内置的HttpURLConnection类进行网络通信。 - 发送GET或POST请求,设置HTTP头,如Content-Type...
本主题的核心是"拼接XML调用WebService",这通常指的是通过构建XML字符串来构造请求,然后发送该请求到一个Web Service接口以获取响应。以下是对这个过程的详细解释: 1. **XML基础**:XML是一种结构化标记语言,它...
本教程主要探讨如何使用HttpURLConnection来访问WebService。 首先,让我们理解什么是WebService。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的,可以被不同平台和编程语言之间进行交互的服务。它们通过...
本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关知识点。 1. **WebService概念**: WebService是一种基于互联网的、平台无关的应用程序...
这篇博客文章“模拟soapui调用webservice”可能探讨了如何在不使用SOAPUI图形界面的情况下,通过编程方式模拟SOAP请求。 首先,我们需要理解SOAP消息的结构。一个SOAP消息通常包含三个主要部分:Envelope、Header和...
本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...
Java调用WebService工程是将Java应用程序与通过WebService接口提供的服务进行交互的过程。WebService是一种基于XML标准的、平台和语言无关的通信方式,它允许不同系统间的应用能够共享数据和服务。在Java中,我们...
Android调用Webservice主要依赖于HTTP协议,常见的库有HttpURLConnection、Apache HttpClient(已废弃)以及Volley、Retrofit等现代网络库。但针对SOAP协议,我们通常会使用`ksoap2`库,因为它对SOAP消息处理更为...
本教程将详细介绍如何在Android环境中调用Webservice,并提供源码和jar包以供参考。主要涉及的技术点包括SOAP协议、HTTP通信以及接口调用。 1. **SOAP(Simple Object Access Protocol)协议** SOAP是一种轻量级的...
在这里,我们将深入探讨如何在Android应用中调用WebService接口。 首先,我们需要了解两种主要的WebService类型:SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。SOAP通常基于...
1. **使用HttpURLConnection调用WebService** ```java URL url = new URL("http://example.com/WebService.asmx"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection....
本教程将深入探讨如何在Android中实现调用WebService接口进行登录功能,并基于提供的"login"源码进行分析。 首先,了解基础概念: 1. Android:Google开发的开源移动操作系统,主要应用于智能手机和平板电脑。 2. ...
Java调用WebService是一种常见的在Java应用中集成外部服务或系统的方式。WebService是一种基于XML的、平台和语言无关的标准,允许不同系统之间的数据交换。在这个场景中,我们将深入探讨Java如何利用各种技术栈来...
2. **HTTP客户端库**:Android提供了`HttpURLConnection`作为基本的HTTP请求工具,但实际开发中更常使用第三方库,如`OkHttp`和`Volley`,它们提供了更高效、更易用的API。 3. **调用Web服务**:通常,Web服务是以...
Java调用WebService应用是软件开发中的常见任务,它允许Java应用程序与远程的Web服务进行交互,从而实现数据交换和服务的集成。在这个主题中,我们将深入探讨如何在Java环境中使用不同的库和技术来调用WebService。 ...
在本案例中,我们将探讨如何在Android平台上调用WebService来获取服务器上的信息。 首先,我们需要了解WebService的工作原理。WebService提供一组预先定义好的操作(也称为Web方法或API),这些操作可以通过HTTP...
这个任务通常通过调用外部的Web服务接口来完成,本案例将详细讲解如何在Android应用中集成和调用Webservice来查询号码归属地。 首先,我们需要了解什么是Webservice。Webservice是一种基于网络的、分布式的模块化...
在Android开发中,调用Web Service来实现手机归属地查询是一项常见的需求,这通常涉及到网络通信、XML或JSON解析以及Web服务接口的调用。在这个过程中,开发者需要掌握以下关键知识点: 1. **Web Service**: Web ...