当前位置: 代码迷 >> Android >> Android联接服务器Servlet
  详细解决方案

Android联接服务器Servlet

热度:89   发布时间:2016-05-01 11:29:13.0
Android连接服务器Servlet
登陆页面输入用户名和密码,登陆成功后跳转到主页面,失败时显示错误信息。传递参数时用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();		}	}});

  相关解决方案