package com.test; import android.app.Activity; import android.content.Context; import com.google.appinventor.components.annotations.*; import com.google.appinventor.components.common.ComponentCategory; import com.google.appinventor.components.runtime.AndroidNonvisibleComponent; import com.google.appinventor.components.runtime.ComponentContainer; import com.google.appinventor.components.runtime.EventDispatcher; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import android.os.Handler; @DesignerComponent( version = 1, description = "", category = ComponentCategory.EXTENSION, nonVisible = true, iconName = "") @SimpleObject(external = true) @UsesLibraries(libraries = "") @UsesPermissions(permissionNames = "") public class CEP extends AndroidNonvisibleComponent { private Context context; private Activity activity; public CEP(ComponentContainer container) { super(container.$form()); this.activity = container.$context(); this.context = container.$context(); } @SimpleFunction(description = "GET_API) public void GET_API(final String token) { new Thread(new Runnable() { @Override public void run() { try { String apiUrl = "https://api.test.com/balance + token+ " header "; header = content-Type --header 'accept: application/json' \ --header 'access_token: API_tOKEN' // help me create the parameters above // URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); inputStream.close(); JSONObject jsonResponse = new JSONObject(response.toString()); final String balance = jsonResponse.getString("balance"); // Pass the full response as a parameter final String fullResponse = response.toString(); Handler handler = new Handler(context.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Result(balance, fullResponse); } }); } else { Handler handler = new Handler(context.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Result("Error", "API request failed", ""); } }); } } catch (final Exception e) { // Declare e as final here Handler handler = new Handler(context.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Result("Error", e.getMessage(), ""); } }); } } }).start(); } @SimpleEvent(description = "Event information.") public void Result( String balance, EventDispatcher.dispatchEvent(this, "Result", balance, fullResponse); } }