Volley:BasicNetwork.performRequest:意外的响应代码401,AuthFailure

时间:2018-06-13 11:24:50

标签: android iis android-volley

我正在开发一个Android应用程序,我想使用volley来获取我的get / post请求。问题是,当我向服务器发出请求时,无论是GET还是POST,我都会从标题中收到错误。我做过的事情:

我已检查过清单中是否有INTERNET权限

我已检查IP,端口和网址路径是否良好

我已检查是否将正确的数据发送到服务器

我已经检查了相同的网址是否可以在我的手机浏览器中运行,我可以从浏览器中做出任何请求而没有任何问题,只有在应用程序中它不起作用(我是在我的手机上调试我的应用程序)

我已经检查过相同的网址是否可以在我的电脑浏览器中使用

对于服务器,我使用IIS和Web API 2程序,我已经检查了匿名授权,并且我已禁用Windows授权。

我试图重启服务器

我试图在HTTP

之后放两个//而不是一个

在调试过程中,我将服务器连接到我的IIS进程,我尝试调用的方法永远不会被命中。

这是我的代码(删除了真实IP和真实端口)。

private void validate(final String userEmail,final String userPassword)
{
    final ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("Loading...");
    pDialog.show();

    String tag_json_obj = "json_obj_req";
    String url = "http:/ip:port/InventoryManagement/api/userdata/VerifyUser";
    StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response)
        {
            if (response.compareTo("false") != 0)
            {
                pDialog.dismiss();
                SharedPreferences settings = PreferenceManager
                        .getDefaultSharedPreferences(LoginActivity.this);
                SharedPreferences.Editor editor = settings.edit();
                editor.putString("token", response);
                editor.putBoolean("hasLoggedIn", true);
                editor.apply();
                Intent intent = new Intent(getBaseContext(), MainActivity.class);
                startActivity(intent);
                finish();
            }
            else
            {
                pDialog.dismiss();
                AlertDialog alertDialog = new AlertDialog.Builder(LoginActivity.this).create();
                alertDialog.setTitle("Can't login");
                alertDialog.setMessage("Invalid username or password");
                alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        });
                alertDialog.show();
            }
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error)
        {
            Log.e("ERROR", "Error occurred ", error);
            Snackbar snackbar2 = Snackbar.make(getWindow().getDecorView().getRootView(), "Server error", Snackbar.LENGTH_SHORT).setDuration(2000);
            pDialog.dismiss();
            snackbar2.show();
        }
    })
    {
        @Override
        protected Map<String,String> getParams()
        {
            Map<String, String> params = new HashMap<>();
            params.put("username","user");
            params.put("email", userEmail);
            params.put("password", userPassword);

            return params;
        }
    };
    strReq.setRetryPolicy(new DefaultRetryPolicy(
            10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);
}

0 个答案:

没有答案