天天看点

Android带Cookie的Http请求

前段时间做项目时,通过http请求为了让服务端识别请求的客服端是唯一的,要求在http请求的头部添加Cookie,并以mac地址作为唯一标识

添加Cookie的Http请求,这里以GET请求为例

DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);
        //在http请求头部添加Cookie标识
            httpGet.setHeader("Cookie", 
            "MobileID000001="+ToolUtil.getGateWay(MovieBarApplication.getContext()));
        HttpResponse httpResponse;
        try {
            httpResponse = httpClient.execute(httpGet);
            InputStream is = httpResponse.getEntity().getContent();
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(is, "GBK"));
            String result = "";
            String line = "";

            while (null != (line = bufferedReader.readLine()))
            {
                result += line;
            }
            return result;
        } catch (ClientProtocolException e) {
            e.printStackTrace();
            Log.i("Http Exception", "MalformedURLException: " + e.getMessage());
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            Log.i("Http Exception", "IOException: " + e.getMessage());
            return null;
        }
           

其中的ToolUtil.getGateWay(MovieBarApplication.getContext())是为了获取mac地址

/**
     * 获取默认网关
     *
     * @param context
     * @return
     */
    public static String getGateWay(Context context) {
            WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);  
            WifiInfo info = wifi.getConnectionInfo();
            return info.getMacAddress(); 
    }