In Retrofit for Android, you can send an array as part of the request body using the @Body annotation. Here's a step-by-step guide:
Create a Model Class:
public class MyData { private List<String> dataArray; public MyData(List<String> dataArray) { this.dataArray = dataArray; } // Getter and setter for dataArray } Define Retrofit Interface:
@POST annotation with the endpoint, and use the @Body annotation to pass the array as the request body.public interface MyApiService { @POST("your-endpoint") Call<ResponseBody> postDataArray(@Body MyData myData); } Create Retrofit Instance:
Retrofit.Builder and specify the base URL.Retrofit retrofit = new Retrofit.Builder() .baseUrl("your-base-url") .addConverterFactory(GsonConverterFactory.create()) .build(); Create API Service:
retrofit.create() method.MyApiService apiService = retrofit.create(MyApiService.class);
Prepare Data and Make the Request:
List<String> dataArray = Arrays.asList("value1", "value2", "value3"); MyData myData = new MyData(dataArray); Call<ResponseBody> call = apiService.postDataArray(myData); call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { // Handle the response } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { // Handle the failure } }); This is a basic example, and you might need to adjust it based on your specific API requirements and data structure. Make sure to handle network requests asynchronously, preferably on a background thread or using RxJava if needed.
Retrofit Android POST Array Example:
public interface ApiService { @POST("your_endpoint") Call<ResponseBody> postArray(@Body List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.postArray(dataArray); Retrofit Android POST JSON Array:
public interface ApiService { @POST("your_endpoint") Call<ResponseBody> postJsonArray(@Body JsonArray jsonArray); } JsonArray jsonArray = new JsonArray(); jsonArray.add("value1"); jsonArray.add("value2"); Call<ResponseBody> call = apiService.postJsonArray(jsonArray); Retrofit Android POST Array of Objects:
public interface ApiService { @POST("your_endpoint") Call<ResponseBody> postObjectArray(@Body List<YourObject> objectArray); } List<YourObject> objectArray = new ArrayList<>(); // Populate objectArray with instances of YourObject Call<ResponseBody> call = apiService.postObjectArray(objectArray);
Sending Array as Query Parameter in Retrofit Android:
public interface ApiService { @GET("your_endpoint") Call<ResponseBody> getArrayData(@Query("dataArray") List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.getArrayData(dataArray); Retrofit Android POST Array with Headers:
public interface ApiService { @POST("your_endpoint") @Headers("Custom-Header: headerValue") Call<ResponseBody> postArrayWithHeaders(@Body List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.postArrayWithHeaders(dataArray); Retrofit Android POST Array with Path Parameter:
public interface ApiService { @POST("your_endpoint/{pathParam}") Call<ResponseBody> postArrayWithPathParam(@Path("pathParam") String pathParam, @Body List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.postArrayWithPathParam("yourPath", dataArray); Retrofit Android POST Array with FormUrlEncoded:
public interface ApiService { @FormUrlEncoded @POST("your_endpoint") Call<ResponseBody> postArrayFormUrlEncoded(@Field("dataArray[]") List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.postArrayFormUrlEncoded(dataArray); Retrofit Android POST Array with Dynamic Endpoint:
public interface ApiService { @POST Call<ResponseBody> postDynamicEndpoint(@Url String endpoint, @Body List<String> dataArray); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Call<ResponseBody> call = apiService.postDynamicEndpoint("your_dynamic_endpoint", dataArray); Retrofit Android POST Array with Multipart Form Data:
public interface ApiService { @Multipart @POST("your_endpoint") Call<ResponseBody> postArrayMultipart(@Part("dataArray") List<RequestBody> dataArray); } List<RequestBody> dataArray = Arrays.asList( RequestBody.create(MediaType.parse("text/plain"), "value1"), RequestBody.create(MediaType.parse("text/plain"), "value2"), RequestBody.create(MediaType.parse("text/plain"), "value3") ); Call<ResponseBody> call = apiService.postArrayMultipart(dataArray); Retrofit Android POST Array with Gson RequestBody:
public interface ApiService { @POST("your_endpoint") Call<ResponseBody> postArrayWithGson(@Body RequestBody body); } List<String> dataArray = Arrays.asList("value1", "value2", "value3"); Gson gson = new Gson(); String json = gson.toJson(dataArray); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json); Call<ResponseBody> call = apiService.postArrayWithGson(requestBody); vcf-vcard angular-elements epl apply normal-distribution linker dmg database-table javascriptserializer my.cnf