Android 如何使用okhttp库将数组作为参数传递
我正在使用OKHttp依赖项。我无法以NamvaluePair参数将数组传递给服务器 这是我的函数,用于在POST中发送参数并在响应中获取jSONAndroid 如何使用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
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有解决方案吗?如果有,请分享您的代码。