admin管理员组

文章数量:1535372

腾讯开放平台的接入是非常麻烦的, open.qq,腾讯开放平台的文档很多很杂,社交功能的api接口也很多还有。我现在只接了他的登录跟支付。

一、登录。

登录相对来讲还是比较简单的,首先前端sdk要正确接入获取access_token  跟 openid ,然后需要一个https  方式的get请求来取得进一步的信息。

url :https://graph.qq/user/get_simple_userinfo?oauth_consumer_key=%s&access_token=%s&openid=%s&clientip=&oauth_version=2.a&scope=all  

填写好自己应用的所有内容。https协议的java实现

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.HttpURLConnection;
import java.URL;
import java.util.Map;
import java.util.Map.Entry;

import javax.ssl.HostnameVerifier;
import javax.ssl.HttpsURLConnection;
import javax.ssl.SSLSession;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class MyhttpService {
    private  int read_time_out = 10000;
    private Logger logger = LoggerFactory.getLogger(MyhttpService.class);
    
    public MyhttpService() {
        super();
    }
    
    public MyhttpService(int time_out) {
        read_time_out = time_out;
    }
    
    public String doPost(String url, Map<String,String> params){
        StringBuilder postData = new StringBuilder();
        for(Entry<String,String> entry:params.entrySet()){
            if(postData.length()!=0){
                postData.append("&");
            }
            postData.append(entry.getKey()).append("=").append(entry.getValue());
        }
        return service(false, url, postData.toString(), "POST", null);
    }
    public String doPost(String url, Map<String,String> params,Map<String,String> headers){
        StringBuilder postData = new StringBuilder();
        for(Entry<String,String> entry:params.entrySet()){
            if(postData.length()!=0){
                postData.append("&");
            }
            postData.append(entry.getKey()).append("=").append(entry.getValue());
        }
        return service(false, url, postData.toString(), "POST", headers);
    }
    public String doPost(String url,String body){
        return service(false, url, body, "POST", null);
    }
    
    public String doPost(String url, String postData, Map<String,String> headers){
        return service(false, url, postData, "POST", headers);
    }
    
    public String doGet(String url, Map<String,String> headers){
        return service(false, url, null, "GET", headers);
    }
    
    public String doGet(String url){
        return service(false, url, null, "GET", null);
    }
    
    public String doHttpsPost(String url, String postData) {
        return service(true, url, postData, "POST",null);
    }
    public String doHttpsPost(String url, Map<String,String> params){
        return  doHttpsPost(url,params,null);
    }
    
    public String doHttpsPost(String url, Map<String,String> params,Map<String,String> headers){
        StringBuilder postData = new StringBuilder();
        for(Entry<String,String> entry:params.entrySet()){
            if(postData.length()!=0){
                postData.append("&");
            }
            postData.append(entry.getKey()).append("=").append(entry.getValue());
        }
        return service(true, url, postData.toString(), "POST", headers);
    }
    public String doHttpsGet(String url) {
        return service(true, url, null, "GET",null);
    }
    
    private String service(boolean isHttps, String url, String postData, String method, Map<String,String> headers){
        
        HttpURLConnection conn = null;
        try {
            boolean doOutput = postData != null && postData.equals("");
            conn = isHttps ? createHttpsConn(url, method, doOutput) : createHttpConn(url, method, doOutput);

            fillProperties(conn, headers);

            if(doOutput) writeMsg(conn, postData);

            String msg = readMsg(conn);

            logger.debug(msg);

            return msg;
        } catch (Exception ex) {
            logger.error(ex.getMessage(), ex);
        } finally {
            if (conn != null) {
                conn.disconnect();
                conn = null;
            }
        }
        return null;
    }

    private HttpURLConnection createHttpConn(String url, String method, boolean doOutput) throws IOException {
        URL dataUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) dataUrl.openConnection();
        conn.setReadTimeout(read_ti

本文标签: 腾讯服务器平台androidqq