使用排球库

时间:2017-12-22 23:04:20

标签: android json android-volley

我使用密码保护了一些托管文件,以避免任何未知访问,但我不知道如何从我的应用程序直接访问这些文件,我使用的是Volley库,我试过这个:

    private static final String URL = "http://user:password@mywebsite.com/file/json/";

public static void getData(final Context context) {

    requestQueue = Volley.newRequestQueue(context.getApplicationContext());
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {
                String somedata= response.getString("data");

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
          //  Toast.makeText(context, "Error Loading Data\n Please Restart App", Toast.LENGTH_SHORT).show();
        }
    });
    requestQueue.add(jsonObjectRequest);
    }
  

我意识到我的应用程序无法从我的json文件中获取数据,但是当我   从浏览器访问上面的URL,它完美地运行

1 个答案:

答案 0 :(得分:0)

请勿将密码存入Url。 Volley支持所有Http方法。您应该使用PostPut方法

new JsonObjectRequest(Request.Method.POST, URL, null, new Response.Listener<JSONObject>(){
 ...
}

您的网址似乎不正确或您正在使用重定向。由于结果代码,chrome auto会调用新的url。如果未定义端口,则这些浏览器会自动设置端口80。 还要注意你的后端

请参阅Android volley to handle redirect