我使用密码保护了一些托管文件,以避免任何未知访问,但我不知道如何从我的应用程序直接访问这些文件,我使用的是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,它完美地运行
答案 0 :(得分:0)
请勿将密码存入Url。 Volley
支持所有Http方法。您应该使用Post
或Put
方法
new JsonObjectRequest(Request.Method.POST, URL, null, new Response.Listener<JSONObject>(){
...
}
您的网址似乎不正确或您正在使用重定向。由于结果代码,chrome auto会调用新的url。如果未定义端口,则这些浏览器会自动设置端口80。 还要注意你的后端