in templates/java/src/main/java/com/facebook/ads/sdk/BatchRequest.java [81:112]
public List<APIResponse> execute() throws APIException {
try {
List<APIResponse> responses = new ArrayList<APIResponse>();
String batchResponse = executeInternal();
context.log(batchResponse);
JsonArray jsonArray = new JsonParser().parse(batchResponse).getAsJsonArray();
if (jsonArray.size() != requests.size()) {
throw new APIException.MalformedResponseException("Batch request size is " + requests.size() + ", but response size is " + jsonArray.size());
}
for (int i = 0; i< jsonArray.size(); i++) {
if (jsonArray.get(i).isJsonNull()) {
responses.add(null);
continue;
}
JsonObject response = jsonArray.get(i).getAsJsonObject();
if (response == null || response.get("body") == null || response.get("body").isJsonNull()) {
responses.add(null);
continue;
}
if (response.get("code").getAsInt() == HttpURLConnection.HTTP_OK) {
String body = response.get("body").getAsString();
APIRequest request = requests.get(i).request;
responses.add(request.parseResponse(body, null));
} else {
responses.add(new APIException.FailedRequestException(response.toString()));
}
}
return responses;
} catch (IOException e) {
throw new APIException.FailedRequestException(e);
}
}