android 中设置http请求头headers的Cookie
16lz
2021-01-24
为了验证的安全, 有些应用 会对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部分截取错了 这里要注意一下哦。代码有点乱,不过主要方法逻辑 还是清晰的 希望能帮到一些盆友 自己以后也会用得着
更多相关文章
- Android(安卓)Intent的几种用法全面总结
- android优化实战(一)-从递归到迭代
- Android(安卓)Kotlin的使用及简单实例
- system 权限程序不能访问sd卡问题
- Android热修复(微信tinker的集成)
- 让低版本的 Android(安卓)项目显示出 Material 风格的点击效果
- Android实现Splash界面全屏效果
- android 横向滑动多屏(开源项目)
- 兼容性(一) - 使代码向前兼容SDK版本