Java使用soap调用qq在线状态

本文详细记录了一位新手在使用Java通过SOAP协议调用QQ在线状态过程中遇到的挑战和解决方法,从零开始搭建环境,配置SOAP客户端,到成功获取并解析响应数据,一步步揭秘这个过程。
摘要由CSDN通过智能技术生成

折腾了好久才搞定,新手泪奔。。。。。


package com.mysoap;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;

public class MySoap {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("........start............");
		try {
			SOAPConnectionFactory connectionFactory = SOAPConnectionFactory.newInstance();
			SOAPConnection conn = connectionFactory.createConnection();
			
			MessageFactory messageFactory = MessageFactory.newInstance();
			SOAPMessage msg = messageFactory.createMessage();
			
			SOAPPart soapPart = msg.getSOAPPart();
			SOAPEnvelope envelope = soapPart.getEnvelope();
			SOAPBody body = envelope.getBody();
			
			SOAPBodyElement bodyElement = body.addBodyElement(new QName("http://WebXml.com.cn/","qqCheckOnline"));
			bodyElement.addChildElement("qqCode").setValue("1149518655");
			
			
			
			URL url = new URL("http://www.webxml.com.cn/WebServices/qqOnlineWebService.asmx");
			SOAPMessage reply = conn.call(msg, url);
			System.out.println("reply:");
			System.out.println(reply);
			
			TransformerFactory transfac = TransformerFactory.newInstance();
			Source source = reply.getSOAPPart().getContent();
			Transformer trans = transfac.newTransformer();
			
			
			StreamResult result = new StreamResult(System.out);
			
			trans.transform(source, result);
			
			conn.close();
			
		} catch (UnsupportedOperationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SOAPException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (TransformerConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (TransformerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值