Android 如何使用okhttp库将数组作为参数传递

Android 如何使用okhttp库将数组作为参数传递,android,android-studio,okhttp,Android,Android Studio,Okhttp,我正在使用OKHttp依赖项。我无法以NamvaluePair参数将数组传递给服务器 这是我的函数,用于在POST中发送参数并在响应中获取jSON public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) throws IOException, JSONException { OkHttpClient client = new OkHttpClient(); Log.i("PARAM

我正在使用OKHttp依赖项。我无法以NamvaluePair参数将数组传递给服务器

这是我的函数,用于在POST中发送参数并在响应中获取jSON

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) throws IOException, JSONException {

 OkHttpClient client = new OkHttpClient();

    Log.i("PARAMETERS", "PARAMETERS ::" + params);

    FormEncodingBuilder builder = new FormEncodingBuilder();

    for (NameValuePair valuePair : params) {

        builder.add(valuePair.name, URLEncoder.encode(valuePair.value, "UTF-8"));
    }

    Request request = new Request.Builder().url(url).post(builder.build()).build();
    Log.i("Registration Request::", request.toString());

    Response response = client.newCall(request).execute();
    Log.i("REGISTRATION RESPONSE::", response.toString());


       JSONObject jObj= new JSONObject(response.body().string()) ;

 return jObj;
}
publicJSONObject getJSONFromUrl(字符串url,列表参数)抛出IOException,JSONException{
OkHttpClient=新的OkHttpClient();
Log.i(“参数”,“参数::”+params);
FormEncodingBuilder=新的FormEncodingBuilder();
用于(名称值对值对:参数){
builder.add(valuePair.name,URLEncoder.encode(valuePair.value,“UTF-8”);
}
Request Request=newrequest.Builder().url(url.post(Builder.build()).build();
Log.i(“注册请求::”,Request.toString());
Response=client.newCall(request.execute();
Log.i(“注册响应::”,RESPONSE.toString());
JSONObject jObj=新的JSONObject(response.body().string());
返回jObj;
}
这是我呼吁采取行动的职责

public JSONObject getShopCategory(String jsonArray) throws IOException {
        // Building Parameters

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new NameValuePair("tag", categoryShopTag));
        params.add(new NameValuePair(categoryShopTag, jsonArray));
        // params.add(new BasicNameValuePair("buyer_id", buyer_id));
        // params.add(new BasicNameValuePair("last_sync_date", last_sync_date));
        Log.i("CATEGORY REQUEST::", params.toString());
        // getting JSON Object
        JSONObject json = null;
        try {
            json = jsonParser.getJSONFromUrl(UrlMap.urlPath, params);
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return json;
    }
公共JSONObject getShopCategory(字符串jsonArray)引发IOException{ //建筑参数 List params=new ArrayList(); 添加(新的NameValuePair(“标记”,categoryShopTag)); 参数add(新的NameValuePair(categoryShopTag,jsonArray)); //参数添加(新的BasicNameValuePair(“买方id”,买方id)); //添加(新的BasicNameValuePair(“上次同步日期”,上次同步日期)); Log.i(“类别请求::”,params.toString()); //获取JSON对象 JSONObject json=null; 试一试{ json=jsonParser.getJSONFromUrl(UrlMap.urlPath,params); }捕获(JSONException e){ e、 printStackTrace(); } 返回json; } 这就是我称之为功能的地方

for (int i = 0; i < sellerId.size(); i++) {

                lastdateCat = "2011-02-11 18:57:25";


          buyerCategoryFunction = new BuyerCategoryFunction();

                JSONObject jsonObjectCategory = new JSONObject();
                try {
                    jsonObjectCategory.put("shop_id", sellerId.get(i));
                    jsonObjectCategory.put("last_sync_date", lastdateCat);
                    jsonObjectCategory.put("buyer_id", CommonUtilities
                            .getSellerId(getApplicationContext()));

                } catch (JSONException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                jsonCategoryArray.put(jsonObjectCategory);

            }


 JSONObject jsonCategory = buyerCategoryFunction
                            .getShopCategory(jsonCategoryArray.toString();
for(int i=0;i
问题不是来自web服务,因为它可以与HttpClient一起正常工作。
请帮我想想。

可能重复的@Niral Bhavsar有解决方案吗?如果有,请分享您的代码。