一个关于webqq协议获取信息的Demo,通过这个协议从qq服务端返回响应的状态码。
package com.tiny.httpdemo;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import lan.Log;
public class testqq {
private static String requestXml = "VER=1.1&CMD=Login&SEQ=" + 1111 + "&UIN=" + 1716180266 + "&PS=" + MD5("lyf@#8768") + " &M5=1&LC=9326B87B234E7235";
private static String requestXmlS = "VER=1.1&CMD=List&SEQ=" + 1111 + "&UIN=" + 1716180266 + "&TN=160&UN=0"; ;
public static byte[] requestByte = null;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
requestByte = requestXml.getBytes();
URL url = new URL("http://tqq.tencent.com:8000");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(requestByte);
os.flush();
int responseCode = conn.getResponseCode();
String responseMessage = conn.getResponseMessage();
Log.d("sada", "Response:" + responseCode + " " + responseMessage);
if(200 == responseCode && "OK".equals(responseMessage)){
// 得到返回的字符串
InputStream is = conn.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int ch = -1;
byte[] buffer = new byte[1024];
while((ch = is.read(buffer)) != -1){
baos.write(buffer, 0, ch);
}
baos.flush();
String responseXml = baos.toString("UTF-8");
Log.d("sada", "response xml:" + responseXml);// print response xml
baos.close();
os.close();
is.close();
conn.disconnect();
conn = null;
buffer = null;
baos = null;
os = null;
is = null;
requestByte = requestXmlS.getBytes();
url = new URL("http://tqq.tencent.com:8000");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
os = conn.getOutputStream();
os.write(requestByte);
os.flush();
responseCode = conn.getResponseCode();
responseMessage = conn.getResponseMessage();
Log.d("sada", "Response:" + responseCode + " " + responseMessage);
if(200 == responseCode && "OK".equals(responseMessage)){
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
ch = -1;
buffer = new byte[1024];
while((ch = is.read(buffer)) != -1){
baos.write(buffer, 0, ch);
}
baos.flush();
responseXml = baos.toString("UTF-8");
Log.d("sada", "response xml:" + responseXml);// print response xml
baos.close();
os.close();
is.close();
conn.disconnect();
conn = null;
buffer = null;
baos = null;
os = null;
is = null;
}
}
}
private static String MD5(String string) {
return string;
}
}
返回结果是:
D sada Response:200 OK
D sada response xml:VER=1.1&CMD=Login&SEQ=1111&UIN=1716180266&RES=0&RS=1&RA=Password error!
D sada Response:200 OK
D sada response xml:VER=1.1&CMD=LIST&SEQ=1111&UIN=1716180266&RES=20
qq的这个协议已经过期了 仅此作为参考