Android 身份验证总是使用截击失败
我只是个编程新手。我正在编写一个Android应用程序,它将使用我帐户的用户名和密码登录到一个私有服务器(网页)。如果用户名和密码正确,我可以使用手机在该网页上查看我的帐户。我正在使用截击,下面是我的登录代码:Android 身份验证总是使用截击失败,android,json,string,http,android-volley,Android,Json,String,Http,Android Volley,我只是个编程新手。我正在编写一个Android应用程序,它将使用我帐户的用户名和密码登录到一个私有服务器(网页)。如果用户名和密码正确,我可以使用手机在该网页上查看我的帐户。我正在使用截击,下面是我的登录代码: public class MainActivity extends Activity { private Button mTrigger; private RequestQueue mVolleyQueue; private ProgressDialog mProgress; priv
public class MainActivity extends Activity {
private Button mTrigger;
private RequestQueue mVolleyQueue;
private ProgressDialog mProgress;
private final String TAG_REQUEST = "MY_TAG";
private TextView mResultView;
private EditText uname;
private EditText pword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBarSetup();
mVolleyQueue = Volley.newRequestQueue(this,new SslHttpStack(true));
mResultView = (TextView) findViewById(R.id.result_txt);
uname = (EditText)findViewById(R.id.txt_username);
pword = (EditText)findViewById(R.id.txt_password);
mTrigger = (Button) findViewById(R.id.button1);
mTrigger.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showProgress();
makeSampleHttpRequest();
}
});
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void actionBarSetup() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar ab = getActionBar();
ab.setTitle("AIM User Login");
}
}
public void onDestroy() {
super.onDestroy();
}
public void onStop() {
super.onStop();
if(mProgress != null)
mProgress.dismiss();
mVolleyQueue.cancelAll(TAG_REQUEST);
}
private void showProgress() {
mProgress = ProgressDialog.show(this, "", "Loading...");
}
private void stopProgress() {
mProgress.cancel();
}
private void makeSampleHttpRequest() {
final String param1 = uname.getText().toString();
final String param2 = pword.getText().toString();
final String url = "http://vo.aimglobalinc.com/control/con_login.asp";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mResultView.setText(response);
stopProgress();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if( error instanceof AuthFailureError) {
stopProgress();
//showToast(error.getMessage());
Toast.makeText(MainActivity.this, "Please check your username or password.", Toast.LENGTH_LONG).show();
} else if( error instanceof ServerError) {
} else if( error instanceof NetworkError) {
} else if( error instanceof ParseError) {
} else if( error instanceof NoConnectionError) {
} else if( error instanceof TimeoutError) {
}
stopProgress();
//showToast(error.getMessage());
Toast.makeText(MainActivity.this, "Please check your internet connection.", Toast.LENGTH_LONG).show();
}
}) {
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json; charset=utf-8");
params.put("username", param1);
params.put("password", param2);
return params;
}
};
stringRequest.setShouldCache(true);
stringRequest.setTag(TAG_REQUEST);
mVolleyQueue.add(stringRequest);
}
我的问题是,即使我输入了正确的帐户用户名和密码,或者输入了错误的用户名或密码,我得到的响应(使用emulator)始终如下所示:
{"success":"failed","message":"Invalid username or password"}
我至少应该看到一个“成功”或字符串从我的帐户在该网页上。请帮助我或纠正我的代码和方法如何做我的项目。提前谢谢 Tvolley中的JsonObjectRequest不是HTTP请求吗?谢谢Mike,我尝试过使用JsonObjectRequest,但是当我输入正确或不正确的用户名和密码时,它总是说成功登录(我制作了toast)你是否只通过web直接登录过?是的,使用网络和浏览器。在截击中传递用户名/密码可能有问题,然后。。。
{"success":"failed","message":"Invalid username or password"}