Skip to content Skip to sidebar Skip to footer

How To Send String Array Data With Okhttp Multipartbuilder Data

I am an android developer. I develop an application. I have a problem. I want to send string array data with okhttp multipart data. But I can not do it. Because 'addFormDataPart' m

Solution 1:

voidStringsendData(String serverURL, String[] arrayData){
        String commaSeparatedValues = TextUtils.join(",", arrayData);
        multiPartBuilder.addFormDataPart("key[]", commaSeparatedValues);
    }

Note: the key here is important it should have "[]"

Solution 2:

Please try this

privatevoidStringsendData(String serverURL, String[] arrayData){
  RequestBody requestBody;
  requestBody = newMultipartBuilder()
                    .type(MultipartBuilder.FORM)
                    .addFormDataPart("arraydata", getToString(arrayData))
                    .build();
}

publicStringgetToString(String[] arrayData) {
  StringBuilder stringBuilder = newStringBuilder();
  for (int i = 0 ; i < arrayData.length; i++) {
    stringBuilder.append(arrayData[i]);
    if (i < arrayData.length - 1) {
        stringBuilder.append(",");
    }
  }
  return stringBuilder.toString();
}

Solution 3:

MediaTypeJSON = MediaType.parse("application/json; charset=utf-8");

Map<String, Long> params = newHashMap<String, Long>();
params.put("msisdn", 8801701340061l);

JSONObject parameter = newJSONObject(params);


RequestBody body = RequestBody.create(JSON, parameter.toString());

RequestBody requestBodyy = newMultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addPart(
                Headers.of("content-type", "form-data; name=\"image\""),
                RequestBody.create(null, "Square Logo"))
        .addPart(
                Headers.of("content-type", "application/json; charset=utf-8"),
                body)
        .build();

Solution 4:

String[] arrayData拼接成 "one,two,three" 这种形式:

publicStringgetToString(String[] arrayData) {
    StringBuilder stringBuilder = newStringBuilder();
    for (int i = 0 ; i < arrayData.length; i++) {
        stringBuilder.append(arrayData[i]);
        if (i < arrayData.length - 1) {
            stringBuilder.append(",");
        }
    }
    return stringBuilder.toString();
}

再传值:

.addFormDataPart("arraydata", getToString(arrayData))

Post a Comment for "How To Send String Array Data With Okhttp Multipartbuilder Data"