java 简单的握手连接Demo

一个关于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的这个协议已经过期了 仅此作为参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值