페이스 북 API와 통합되고 REST API를 사용하는 Android 앱을 만들고있어 Volley를 사용하고 있습니다. 그러나 JSON Array에 대한 GET 요청을 보내려고하고 있으며 서버에 액세스하기 위해 Facebook 인증 토큰을 포함해야합니다. 나는이에서 본 질문의 대부분은 상대적으로 오래된, 그리고 발리는 이제 지원합니다 (발리 GitHub의 페이지에서) 요청 PARAMS 전달하기 위해 제공하는 것처럼 보인다 :GET 발리를 사용하여 매개 변수 요청
/**
* Creates a new request.
* @param method the HTTP method to use
* @param url URL to fetch the JSON from
* @param jsonRequest A {@link JSONArray} to post with the request. Null is allowed and
* indicates no parameters will be posted along with request.
* @param listener Listener to receive the JSON response
* @param errorListener Error listener, or null to ignore errors.
*/
public JsonArrayRequest(int method, String url, JSONArray jsonRequest,
Listener<JSONArray> listener, ErrorListener errorListener) {
super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener,
errorListener);
}
을하지만 할 때와 JsonArrayRequest를 발행 , 나는 com.android.volley.AuthFailureError를 얻는다. 여기 내 코드가있다, 내가 뭘 잘못하고 있는지 누가 알 수 있니?
@Override
protected void onCreate(Bundle savedInstanceState) {
System.out.println("Yo im here");
JSONObject requestParams = new JSONObject();
JSONArray paramArray = new JSONArray();
try {
requestParams.put("Authorization", "JWT (Facebook auth token)");
paramArray.put(requestParams);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(paramArray.toString());
RequestQueue queue = Volley.newRequestQueue(this);
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET,
GET_MAP_MICS,
paramArray,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray micArray) {
try {
for (int i = 0; i < micArray.length(); i++) {
JSONObject jsonobject = micArray.getJSONObject(i);
int micId = jsonobject.getInt("micId");
String status = jsonobject.getString("status");
System.out.println("Good so far!");
double venLat = jsonobject.getDouble("venueLat");
double venLong = jsonobject.getDouble("venueLat");
System.out.println("got here, check it: " + venLat);
}
}catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
System.out.println(e);
}
});
이 점에 대해 감사드립니다. 매개 변수와 헤더의 차이점을 착각했습니다. 그러나 게시 한 방식으로 getHeaders 메서드를 재정의하는 올바른 방법이 아닌 경우 해당 메서드를 재정의하는 올바른 방법은 무엇입니까? –
다른 방법이있는 경우'Map '을 사용하여'volley'의'req'에 대한 패스 헤더 만있는 방법입니다. –
아니요 구문을 얻는다는 의미입니다. getHeaders를 재정의 할 때 오류가 발생했습니다. –