import java.io.*;
import java.net.*;
public class QQOperator {
public static void main(String[] args) throws Exception {
String urlString = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
String xmlFile = "d:/qqOnlineWebService.xml";
String soapActionString = "http://WebXml.com.cn/qqCheckOnline";
URL url = new URL(urlString);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();;
System.out.println("start connect..");
File fileToSend=new File(xmlFile);
byte[] buf=new byte[(int)fileToSend.length()];
new FileInputStream(xmlFile).read(buf);
httpConn.setRequestProperty( "Content-Length",String.valueOf( buf.length ) );
httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
httpConn.setRequestProperty("soapActionString",soapActionString);
httpConn.setRequestMethod( "POST" );
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
OutputStream out = httpConn.getOutputStream();
System.out.println("start connect 2..");
out.write( buf );
out.close();
InputStreamReader isr = new InputStreamReader(httpConn.getInputStream(),"utf-8");
System.out.println("start connect 3..");
BufferedReader in = new BufferedReader(isr);
String inputLine;
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/result.xml")));
while ((inputLine = in.readLine()) != null){
System.out.println(inputLine);
bw.write(inputLine);
bw.newLine();
}
bw.close();
in.close();
}
}
d:/qqOnlineWebService.xml内容如下:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<qqCheckOnline xmlns="http://WebXml.com.cn/">
<qqCode>8698053</qqCode>
</qqCheckOnline>
</soap12:Body>
</soap12:Envelope>
本文提供了一个使用Java通过HTTP POST请求查询QQ在线状态的示例代码。该示例利用了webxml提供的Web服务接口,并详细展示了如何构造SOAP消息、设置HTTP请求头及读取响应结果。
5726

被折叠的 条评论
为什么被折叠?



