Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 身份验证总是使用截击失败_Android_Json_String_Http_Android Volley - Fatal编程技术网

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

我只是个编程新手。我正在编写一个Android应用程序,它将使用我帐户的用户名和密码登录到一个私有服务器(网页)。如果用户名和密码正确,我可以使用手机在该网页上查看我的帐户。我正在使用截击,下面是我的登录代码:

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"}