android 中设置http请求头headers的Cookie

来源:互联网 发布:珠海航展歼20知乎 编辑:程序博客网 时间:2024/05/22 02:04

为了验证的安全, 有些应用 会对headers设置cookie 才能进行以后的操作。网上查阅了很多资料,自己也走了些弯路 总算搞出来了  。直接上代码

class NetThr    {       public static String sessionid=null;              //请求的url ,json数据, 服务的类型(获取cookie)   public void  netThr(String svrurl, String message,int svrType) {String svraddr = "";            svraddr = svrurl.replace(" ", "%20");URL svr = new URL(svraddr);if (message == null)            message = "";try {HttpURLConnection httpreq = (HttpURLConnection) svr.openConnection();httpreq.setConnectTimeout(60000);httpreq.setReadTimeout(60000);if (message.length() > 0)httpreq.setRequestMethod("POST");elsehttpreq.setRequestMethod("GET");httpreq.setDoInput(true);if (message.length() > 0) {httpreq.setDoOutput(true); httpreq.setRequestProperty("Charset", "UTF-8");httpreq.setRequestProperty("Content-length", "" + message.getBytes("UTF-8").length);httpreq.setRequestProperty("Content-Type", "application/json");}if (sessionid!=null&&svrType!=HandleRespFun.API_TYPE_GETCOOKIE){                        //设置Cookie 到 Headers httpreq.setRequestProperty("Cookie",sessionid);}httpreq.connect();if (message.length() > 0) {OutputStream os = httpreq.getOutputStream();DataOutputStream dos = new DataOutputStream(os);dos.write(message.getBytes("UTF-8"));dos.close();}//返回的headers 例子//Content-Typeapplication/json            //        Set-Cookieapi_authenticated=1            //        Set-Cookieuser_authenticated=1            //        Set-CookieJSESSIONID=16i51l7jwmodpb1u1jfpdk0pg;Path=/laundry            //        ExpiresThu, 01 Jan 1970 00:00:00 GMT            //        Content-Length175            //        ServerJetty(9.2.3.v20140905)            //        DateTue, 27 Jan 2015 02:32:09 GMT      //获取Cookie      if(svrType==HandleRespFun.API_TYPE_GETCOOKIE){Map<String, List<String>> kk = httpreq.getHeaderFields();List<String> cook = kk.get("Set-Cookie");if(cook!=null){for (String onecook : cook) {Log.v("Jashon", "Cookie is:" + onecook);if (onecook.contains("JSESSIONID")){                            //sessionid=JSESSIONID=16i51l7jwmodpb1u1jfpdk0pgsessionid=onecook.split(";")[0];}}}}}}
 之前的时候 截取 sessionid部分截取错了  这里要注意一下哦。代码有点乱,不过主要方法逻辑 还是清晰的 希望能帮到一些盆友 自己以后也会用得着

0 0