长尾关键词网站,电商网站建设与运行,做盗版电影网站犯法吗,网站建设编写代码出错Java调用Web service接口SOAP协议HTTP请求#xff0c;解析返回的XML字符串#xff1a;
1. 使用Java的HTTP库发送SOAP请求#xff0c;并接收返回的响应。
可以使用Java的HttpURLConnection、Apache HttpClient等库。
2. 将返回的响应转换为字符串。
3. 解析XML字符串解析返回的XML字符串
1. 使用Java的HTTP库发送SOAP请求并接收返回的响应。
可以使用Java的HttpURLConnection、Apache HttpClient等库。
2. 将返回的响应转换为字符串。
3. 解析XML字符串可以使用Java的DOM解析器或者其他第三方库如JDOM、DOM4J等。
4. 解析XML数据提取需要的信息。
参考代码如下
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;public class SOAPClient {public static void main(String[] args) {try {// 创建SOAP请求的XML数据String soapRequest soapenv:Envelope xmlns:soapenv\http://schemas.xmlsoap.org/soap/envelope/\ xmlns:web\http://www.demo.com\\n soapenv:Header/\n soapenv:Body\n web:YourMethodName\n web:Parameter1Nameparameter1Value/web:Parameter1Name\n /web:YourMethodName\n /soapenv:Body\n /soapenv:Envelope;// 发送SOAP请求并接收返回的响应String endpoint http://localhost:8080/demo_webservice; // Webservice的URLHttpURLConnection connection (HttpURLConnection) new URL(endpoint).openConnection();connection.setRequestMethod(POST);connection.setRequestProperty(Content-Type, text/xml;charsetUTF-8);connection.setRequestProperty(SOAPAction, http://www.demo.com/demoMethodName); // SOAPAction必须指定connection.setDoOutput(true);OutputStreamWriter osw new OutputStreamWriter(connection.getOutputStream());osw.write(soapRequest);osw.flush();BufferedReader br new BufferedReader(new InputStreamReader(connection.getInputStream()));StringBuilder sb new StringBuilder();String line;while ((line br.readLine()) ! null) {sb.append(line);}br.close();connection.disconnect();String soapResponse sb.toString();// 解析XML字符串DocumentBuilder documentBuilder DocumentBuilderFactory.newInstance().newDocumentBuilder();Document document documentBuilder.parse(soapResponse);// 提取需要的信息// . . .} catch (IOException | ParserConfigurationException | SAXException e) {e.printStackTrace();}}
}通过上述示例代码使用Java的HTTP库发送SOAP请求并接收返回的响应然后将返回的响应
转换为字符串。
接下来可以使用Java的DOM解析器或其他第三方库解析XML字符串提取需要的信息。
需要将示例代码中的http://localhost:8080/demo_webservice替换为实际的Web service的
URL并将SOAP请求的XML数据、SOAPAction、以及需要提取的信息进行相应的替换。