登陆页面输入用户名和密码,登陆成功后跳转到主页面,失败时显示错误信息。传递参数时用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();
}
}
});
;