package com.example.notifyservice; import static com.example.notifyservice.Encryption.aesEncrypt; import android.content.Context; import android.util.Log; import androidx.annotation.NonNull; import org.json.JSONObject; import java.io.IOException; import java.util.concurrent.TimeUnit; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class PostRequest { private Context context; private String BASE_URL = "BASE_URL"; // VARIABLE STATIC private PostRequestCallback callback; public String buildPoint = "BUILD_POINT"; // VARIABLE STATIC public PostRequest(Context context, PostRequestCallback callback) { this.context = context; this.callback = callback; } public final OkHttpClient client = new OkHttpClient(); public void execute(String... params) { String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())); String key = MainActivity.getKey(context) + timeStamp; String urlString = Encryption.aesHexEncrypt(params[0], key); String jsonData = params[1]; Request request = new Request.Builder() .url(BASE_URL + Encryption.aesHexEncrypt(buildPoint, timeStamp) + "/" + Encryption.aesHexEncrypt(urlString, key)) // STATIC .post(RequestBody.create(aesEncrypt(jsonData).getBytes())).header( "timestamp", timeStamp // STATIC ) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { onPostExecute(response.body() != null ? response.body().string() : ""); } public void onFailure(@NonNull Call call, @NonNull IOException e) { } }); } protected void onPostExecute(String result) { Log.i("POST", Encryption.aesDecrypt( result )); try { callback.onPostResponse((new JSONObject( Encryption.aesDecrypt( result ) ))); } catch (Exception e) { Log.i("POSTException", e.toString()); // STATIC } } }