Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send string array data with okhttp MultipartBuilder data

Tags:

android

okhttp

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" method is required string variable. I can not use that method(addFormDataPart). I want to send string array data. What can I do?

Please help me.

My source code:

private void String sendData(String serverURL, String[] arrayData){
RequestBody requestBody;
requestBody = new MultipartBuilder()
                        .type(MultipartBuilder.FORM)
                        .addFormDataPart("arraydata", arrayData)
                        .build();
}
like image 732
Andev Avatar asked Apr 19 '26 07:04

Andev


2 Answers

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

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

like image 72
stallianz Avatar answered Apr 21 '26 19:04

stallianz


Please try this

private void String sendData(String serverURL, String[] arrayData){
  RequestBody requestBody;
  requestBody = new MultipartBuilder()
                    .type(MultipartBuilder.FORM)
                    .addFormDataPart("arraydata", getToString(arrayData))
                    .build();
}

public String getToString(String[] arrayData) {
  StringBuilder stringBuilder = new StringBuilder();
  for (int i = 0 ; i < arrayData.length; i++) {
    stringBuilder.append(arrayData[i]);
    if (i < arrayData.length - 1) {
        stringBuilder.append(",");
    }
  }
  return stringBuilder.toString();
}
like image 42
Altangerel Avatar answered Apr 21 '26 19:04

Altangerel