我正在尝试通过Android应用登录我的网站。出于某种原因,总会出现问题。
这是我的网站登录结构:
Login.php - 登录表单(用户名和密码)
Auth.php - 登录身份验证页面(从页面获取用户名和密码 - login.php(POST方法))
我已经要与Username&密码(EditText
两者)
通过Android应用程序登录的方法是什么?
这是我目前的登录方式:
private void login() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://url/auth.php");
JSONObject jsonObject = new JSONObject();
try {
List nameValuePairs = new ArrayList(2);
jsonObject.put("action", "login");
jsonObject.put("username", "user1");
jsonObject.put("password", "12345");
nameValuePairs.add(new BasicNameValuePair("jsonString", jsonObject.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
HttpResponse response = httpclient.execute(httppost);
String responseStr = org.apache.http.util.EntityUtils.toString(response.getEntity());
statusText.setText(responseStr);
} catch (ClientProtocolException e) {
statusText.setText(e.getLocalizedMessage());
} catch (IOException e) {
statusText.setText(e.getLocalizedMessage());
} catch (JSONException e) {
}
}
修改
我将两个页面(login& auth)合并到一个页面,当我调用该方法时,responseStr获取整个页面的html代码。
由于
答案 0 :(得分:0)
您无法使用toString方法记录响应正文。
responseEntity中返回的对象可以作为InputStream读取,或者更简单,转换为带有EntityUtils类的字符串。
String responseStr = org.apache.http.util.EntityUtils.toString(response.getEntity());
尝试记录responseStr。