2017-01-18 2 views
1

Я новичок в разработке Android, мне нужно публиковать параметры как JSON при вызове любого метода API.как отправлять параметры как json в android при вызове любого api

Я передаю в качестве списка массива:

List<NameValuePair> params = new ArrayList<NameValuePair>(); 

Пожалуйста, дайте какие-либо предложения. Спасибо

+0

Как вы называете api? Не могли бы вы сообщить нам об этом? –

+0

как список я прохожу – sunil

ответ

1

наконец я нашел решение с использованием библиотеки залпа, теперь он работает нормально

private void callApiWithJsonReqPost() { 
     boolean failure = false; 
     uAddress="133 Phùng Hưng, Cửa Đông, Hoàn Kiếm, Hà Nội, Vietnam"; 
     addressTag="work address"; 
     String callingURl="put your url here" 

    JSONObject jsonObject=null; 

    try { 
     jsonObject=new JSONObject(); 
     jsonObject.put("address", uAddress); 
     jsonObject.put("type", "insert"); 
     jsonObject.put("tag", addressTag); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 


    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST, 
      callingURl, jsonObject, 
      new Response.Listener<JSONObject>() { 

       @Override 
       public void onResponse(JSONObject response) { 
        Log.d("new_address" ,"sons=="+response.toString()); 

       } 
      }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d("error", "Error: " + error.getMessage()); 

     } 
    }) { 

     /** 
     * Passing some request headers 
     * */ 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<String, String>(); 
      headers.put("Content-Type", "application/json; charset=utf-8"); 
      return headers; 
     } 


    }; 

    // Adding request to request queue 
    Singleton_volley.getInstance().addToRequestQueue(jsonObjReq,"1"); 


} 
0
params.add(new BasicNameValuePair("key",data)); 


JSONObject json = jsonParser.makeHttpRequest(url_create_product, 
       "POST", params); 
+0

да это работа, но мне нужно отправить объект json вместо List params = new ArrayList (); – sunil

+0

Вы хотите отправить JSON? Нужно ли использовать NameValuePair? Вы можете использовать его: http://stackoverflow.com/questions/13005101/how-to-send-json-data-to-post-restful-service –

+0

Okay thanx, любым способом я сделал это по библиотеке залпонов. – sunil

0

Я написал библиотеку для разбора и генерации JSON в Android http://github.com/amirdew/JSON

, например:

JSON generatedJsonObject = JSON.create(
       JSON.dic(
         "someKey", "someValue", 
         "someArrayKey", JSON.array(
           "first", 
           1, 
           2, 
           JSON.dic(
             "emptyArrayKey", JSON.array() 
           ) 
         ) 
       ) 
     ); 


    String jsonString = generatedJsonObject.toString(); 

результат:

{ 
    "someKey": "someValue", 
    "someArrayKey": [ 
    "first", 
    1, 
    2, 
    { 
     "emptyArrayKey": [] 
    } 
    ] 
} 
Смежные вопросы