ApiData.java 2.56 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
package com.mycompany.reporteexcel;

import java.util.concurrent.TimeUnit;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class ApiData {

    public JSONObject conseguirDataReporte(int empresa,int razonSocial, int periodo, String fecha, String conceptoPago) {
        JSONObject respuesta = new JSONObject();

        try {
            // Configurar el timeout de 2 minutos (120,000 ms)
            OkHttpClient client = new OkHttpClient.Builder()
                    .connectTimeout(360, TimeUnit.SECONDS) // Timeout de conexión
                    .readTimeout(360, TimeUnit.SECONDS) // Timeout de lectura
                    .writeTimeout(360, TimeUnit.SECONDS) // Timeout de escritura
                    .build();

            MediaType JSON = MediaType.parse("application/json; charset=utf-8");
            
            String razonSocialText = razonSocial == 0 ? "NULL" : String.valueOf(razonSocial);

            JSONObject data = new JSONObject();
            String sql = "SELECT * FROM  caja.func_listar_morosidad_sede(363,1145,NULL,"+periodo+",NULL,NULL,'"+conceptoPago+"',"+razonSocialText+",'FALSE',NULL,'"+fecha+"',NULL,500000,0,1  )";
            System.out.println(sql);

            data.put("procedure", sql);
            data.put("params", new JSONArray());

            RequestBody body = RequestBody.create(data.toString(), JSON);
            Request request = new Request.Builder()
                    .url("http://prueba.sacooliveros.edu.pe:8080/formulario-api/api/v1/excel/procedure")
                    .post(body)
                    .build();

            try (Response response = client.newCall(request).execute()) {
                if (response.isSuccessful()) {
                    String responseBodyString = response.body().string();
                    respuesta = new JSONObject(responseBodyString);
                } else {
                    System.out.println("Error: " + response.code() + " - " + response.message());
                    String errorResponseBody = response.body() != null ? response.body().string() : "Cuerpo vacío";
                    System.out.println("Response: " + errorResponseBody);
                }
            } catch (Exception e) {
                System.out.println("Error: " + e.getMessage());
            }
        } catch (JSONException ex) {
            System.out.println("Error : HttpRequest : " + ex.getMessage());
        }
        return respuesta;
    }

}