2017-04-24 36 views
1

KairosAPI's enroll POST requestをAndroid Volleyで使用しようとしています。しかし、私はエラー1002を取得し続け、イメージに1つ以上の必須パラメータがありません。私は、コードで概説したJSONの本体にパラメータを追加する2つの方法を試しました。パラメータがありませんAndroidバレーPOSTのKairos API

これは、あなたがJSONを投稿していない私のコード -

public class MainActivity extends AppCompatActivity { 

    RequestQueue requestQueue; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     postRequestToEnrollPersonInGallery(); 
    } 

    public void postRequestToEnrollPersonInGallery() { 

     final String appId = "3e12****"; 
     final String appKey = "156e06fd782a3304f085f***********"; 
     String mainUrl = "https://api.kairos.com/"; 
     String enrollRequestUrl = "enroll"; 

     requestQueue = Volley.newRequestQueue(this); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, mainUrl + enrollRequestUrl, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       Log.d("Volley", response); 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.e("Volley", error.toString()); 
      } 
     }) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       Map<String, String> params = new HashMap<>(); 
       params.put("Content-Type", "application/json"); 
       params.put("app_id", appId); 
       params.put("app_key", appKey); 
       return params; 
      } 

      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("image", "https://s-media-cache-ak0.pinimg.com/originals/c6/c0/04/c6c004ec669d92faa36d8ff447884293.jpg"); 
       params.put("subject_id", "12345"); 
       params.put("gallery_name", "FirstGallery"); 
       /*params.put("image", "\"url\":\"https://s-media-cache-ak0.pinimg.com/originals/c6/c0/04/c6c004ec669d92faa36d8ff447884293.jpg\""); 
       params.put("subject_id", "\"subject_id\":\"12345\""); 
       params.put("gallery_name", "\"gallery_name\":\"FirstGallery\""); -- i tried this too*/ 

       return params; 
      } 
     }; 
     requestQueue.add(stringRequest); 
    } 
} 

答えて

0

です。

あなたはどちらか

1)実際にJSON文字列を掲示)JsonObjectRequest

final JSONObject body = new JSONObject(); 
body.put(... , ...); 
Request request = new JsonObjectRequest(url, body, ...); 

2を使用することを学ぶことができます。

StringRequest request = new StringRequest(...) { 
    @Override 
    public byte[] getBody() throws AuthFailureError { 
     JSONObject params = new JSONObject(); 
     params.put("image", "https://s-media-cache-ak0.pinimg.com/originals/c6/c0/04/c6c004ec669d92faa36d8ff447884293.jpg"); 
     params.put("subject_id", "12345"); 
     params.put("gallery_name", "FirstGallery"); 
     return params.toString().getBytes(); 
    } 

    @Override 
    public String getBodyContentType() { 
     return "application/json"; 
    } 
}; 
関連する問題