好久没写技术博客了。关于为什么这么久没写,是因为写伤了。写过几篇博客后,深刻感觉到要把博客写好是一件很累的事情,花的时间也肯定不会少。记得前段时间写Android中Activity四种启动模式和taskAffinity属性详解这篇博客,前前后后写了一个星期,从那之后真有点怕写这么长的博客了。所以, 以后尽可能不写这种总结性的,篇幅较长的博客,因为自己水平真的有限,写这种长博客太累, 写了之后别人还不见得有耐心读完。另一方面, 写这种长博客花的时间和精力太多, 很累人,并且只能下了班之后抽晚上的时间写。由于不满足自己现在的水平,我业余时间最想做的事是多看书,多补充知识。少写博客,要写的话也是那种短的博客, 可能是工作中解决了一个问题,并且认为这个问题很有代表性,就会整理一下写成一小篇;也可能平时写了一个小demo,能说明一些问题,也会写成短篇博客。
最近一直在做一个移动办公的项目,今天写登陆验证这块的时候被一个问题给缠住了。下面会通过这个简单的小问题来引出这篇文章的主题
private static boolean userLoginCheck1( Context context){ //设置登录验证的各项参数 List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>(); params.add(new BasicNameValuePair("yhid", userName)); params.add(new BasicNameValuePair("yhkl", passwd)); params.add(new BasicNameValuePair("sbid", DeviceTool.getDeviceId(context))); params.add(new BasicNameValuePair("clientIp", IPTool.getPsdnIp())); params.add(new BasicNameValuePair("ywxtbm", "BGPTNEW")); params.add(new BasicNameValuePair("ywxtmc", "办公平台升级")); URL url = null; StringBuilder sb = new StringBuilder(); BufferedReader reader = null; try{ //设置url地址 url = new URL(URLConstant.USER_LOGIN_CHEAK_ADDRESS); String paramString = URLEncodedUtils.format(params, "GBK"); //请求参数编码为GBK byte[] dataToSend = paramString.getBytes(); //post请求中的实体数据 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setConnectTimeout(5000); connection.setRequestProperty("Content-Length", String.valueOf(dataToSend.length)); connection.getOutputStream().write(dataToSend); //发送数据 if(connection.getResponseCode() != 200){ Log.i("eSDK", "验证登陆请求响应码不是200"); return false; } InputStream stream = connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(stream, "GBK")); String lines = ""; while ((lines = reader.readLine()) != null){ sb.append(lines); } Log.i("eSDK", "login cheak response: " + sb.toString()); //对返回的数据进行判断, 以验证是否可以登陆 return "验证成功".equals(sb.toString()); }catch (Exception e){ Log.i("eSDK", "logincheck fail" ); return false; }finally{ if (reader != null){ try{ reader.close(); } catch (IOException e){} } } }
connection.getOutputStream().write(dataToSend);