[转帖]Android连接服务器Servlet_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2997 | 回复: 0   主题: [转帖]Android连接服务器Servlet        下一篇 
huizai
注册用户
等级:少校
经验:933
发帖:83
精华:0
注册:2013-6-18
状态:离线
发送短消息息给huizai 加好友    发送短消息息给huizai 发消息
发表于: IP:您无权察看 2013-6-24 10:08:19 | [全部帖] [楼主帖] 楼主

登陆页面输入用户名和密码,登陆成功后跳转到主页面,失败时显示错误信息。传递参数时用BasicNameValuePair的List以httpPost.setEntity的方式来做,不能用HttpParams。

userName = (EditText) this.findViewById(R.id.editTextUserName);
password = (EditText) this.findViewById(R.id.editTextPassword);
errorMsg = (TextView) this.findViewById(R.id.textViewLoginMsg);
Button loginBtn = (Button) this.findViewById(R.id.btnLogin);
loginBtn.setOnClickListener(new OnClickListener() {

      
       @Override
       public void onClick(View arg0) {
             String result;
             /* 发送部分 */
             try {
                   HttpClient httpClient = new DefaultHttpClient();
                   String address = strUrl;
                   HttpPost httpPost = new HttpPost(address);
                   List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
                   params.add(new BasicNameValuePair("username", userName.getText().toString()));
                   params.add(new BasicNameValuePair("password", password.getText().toString()));
                   httpPost.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中

                   HttpResponse httpResponse = httpClient.execute(httpPost);
                   /* 接收 */
                   if (httpResponse.getStatusLine().getStatusCode() == 200) {
                         result = EntityUtils.toString(httpResponse.getEntity());
                         /* json文本解析 */
                         JSONTokener jsonParser = new JSONTokener(result);

                         JSONObject jsonResult = (JSONObject) jsonParser.nextValue();
                         String status = jsonResult.getString("loginStatus");
                         String outMessage = jsonResult.getString("outMessage");
                         if(status.equals("true")){

                              
                               Intent i = new Intent(LoginActivity.this, MainActivity.class);
                               i.putExtra("username", outMessage);
                               startActivityForResult(i, FIRST_REQUEST_CODE);
                         } else {
                         errorMsg.setVisibility(View.VISIBLE);
                         errorMsg.setText(outMessage);
                   }
             } else {
             errorMsg.setVisibility(View.VISIBLE);
             errorMsg.setText("网络连接问题。CODE:" + httpResponse.getStatusLine().getStatusCode());
       }
} catch (JSONException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
       e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
       e.printStackTrace();
}

}
});

;




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论