Facebook APIと統合し、REST APIを使用するAndroid Appを作成していますので、Volleyを使用しています。しかし、私はJSON配列のGETリクエストを発行しようとしており、サーバーにアクセスするためにFacebook Authorizationトークンを含める必要があります。私はこの上で見てきた質問のほとんどは比較的古く、そしてバレーボールは今(ボレーgithubのページから)リクエストパラメータを渡すためにサポートを提供しますように思える:GET Volleyを使用してパラメータをリクエスト
/**
* 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のオーバーライドを追加しようとするとエラーが発生しました –