HTTP Basic 机制

package com.enation.app.shop.component.payment.plugin.cod;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;

import com.enation.framework.util.EncryptionUtil;
import com.enation.framework.util.JsonMessageUtil;

import sun.misc.BASE64Encoder;

public class CodUtils {
    public static String getToken(){
        String getTokenUrl = "https://api.homecredit.ru/oauth/token?grant_type=client_credentials";
        HttpClient httpclient=new DefaultHttpClient();
        HttpPost request = new HttpPost(getTokenUrl);
        request.addHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
        String client_credentials = "trade_ease:trade_ease_secret";
        sun.misc.BASE64Encoder base64Encode = new BASE64Encoder();
        String str = base64Encode.encode(client_credentials.getBytes());
        System.out.println(str);
        request.addHeader("Authorization","Basic "+str);
        HttpResponse response;
        try {
            response = httpclient.execute(request);
            //根据返回码判断请求是否成功
            System.out.println(response.getStatusLine().getStatusCode());
            if(response.getStatusLine().getStatusCode()==200){
                String tokenJson = EntityUtils.toString(response.getEntity());
                System.out.println(tokenJson);
                JSONObject getToken = JSONObject.fromObject(tokenJson);
                String access_token = getToken.getString("access_token");
                System.out.println(access_token);
                return access_token;
            }else {
                System.out.println(EntityUtils.toString(response.getEntity()));
                return "";
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
            return "";
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }
    }
    
    public static void main(String[] args) throws JSONException {
        String lastName = "篮球6";
        String lastNum = lastName.replaceAll("[^0-9]", "");
        String myName = lastName.split(lastNum)[0];
        System.out.println(myName);
        String uri = EncryptionUtil
                .authCode(
                        "DUdFR1gcGUURFkgEXgJNXwxcQw1eQRpQC10aUQ1IGkIAUF5FBnpYQRIACg1VERhXTVZf",
                        "DECODE");
        System.out.println(uri);
        /*org.json.JSONObject json=new org.json.JSONObject();  
        org.json.JSONArray jsonMembers = new org.json.JSONArray();  
        org.json.JSONObject member1 = new org.json.JSONObject();  
        try {
            member1.put("loginname", "zhangfan");
            member1.put("password", "userpass");  
            member1.put("email","10371443@qq.com");  
            member1.put("sign_date", "2007-06-12");  
            jsonMembers.put(member1);  
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
      
        org.json.JSONObject member2 = new org.json.JSONObject();  
        try {
            member2.put("loginname", "zf");  
            member2.put("password", "userpass");  
            member2.put("email","8223939@qq.com");  
            member2.put("sign_date", "2008-07-16");
            jsonMembers.put(member2);  
            json.put("users", jsonMembers);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
        org.json.JSONArray phone = new org.json.JSONArray(); 
        phone.put("13355555555");
        //json.
*/        
        org.json.JSONObject json=new org.json.JSONObject();
        
        Map <String, String> totalPrice = new HashMap <String, String>();
        totalPrice.put("amount", "50");
        totalPrice.put("currency", "USD");
        
        org.json.JSONArray items = new org.json.JSONArray();  
        org.json.JSONObject goods = new org.json.JSONObject();
        goods.put("name", "YangXinYuan Mens Fashion Long sleeved shirt");
        goods.put("quantity","1");
        goods.put("seller","trade_ease_seller");
        goods.put("itemPrice",totalPrice);
        goods.put("category","TRADE_EASE_TEST_CATEGORY");
        goods.put("weight","0.2kg");
        items.put(goods);
        
        json.put("items",items);
        json.put("totalPrice", totalPrice);
        json.put("shippingCompanyId", "SPSR");
        //System.out.println(json.toString());
        
        List<List> a = new ArrayList();
        List b = new ArrayList();
        b.add("1");
        b.add("1战队");
        a.add(b);
        
        List c = new ArrayList();
        c.add("1");
        c.add("2战队");
        a.add(c);
        
        String listStr = net.sf.json.JSONArray.fromObject(a).toString();
        //System.out.println(listStr);
        
        List<Map> listMap = new ArrayList();
        
        Map dfdfMap = new HashMap();
        dfdfMap.put("名词", "1");
        dfdfMap.put("战队id", "123");
        dfdfMap.put("战队名字", "1也来");
        
        Map dfdfMap2 = new HashMap();
        dfdfMap2.put("名词", "2");
        dfdfMap2.put("战队id", "124");
        dfdfMap2.put("战队名字", "11也地方");
        
        Map dfdfMap3 = new HashMap();
        dfdfMap3.put("名词", "3");
        dfdfMap3.put("战队id", "125");
        dfdfMap3.put("战队名字", "1fff地方");
        
        listMap.add(dfdfMap);
        listMap.add(dfdfMap2);
        listMap.add(dfdfMap3);
        String listStr2 = net.sf.json.JSONArray.fromObject(listMap).toString();
        System.out.println(listStr2);
        //a.add("df");
        
    }

}

HTTP 验证

验证采用 HTTP Basic 机制,即 HTTP Header(头)里加一个字段(Key/Value对):

Authorization: Basic base64_auth_string

其中 base64_auth_string 的生成算法为:base64(appKey:masterSecret)

即,对 appKey 加上冒号,加上 masterSecret 拼装起来的字符串,再做 base64 转换。

原文地址:https://www.cnblogs.com/jiafuwei/p/5980868.html