当前位置: 代码迷 >> Android >> Android经过HttpClient访问服务器的servlet
  详细解决方案

Android经过HttpClient访问服务器的servlet

热度:99   发布时间:2016-05-01 11:28:18.0
Android通过HttpClient访问服务器的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();		}	}});

  相关解决方案