[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eApiProxy\u003c/code\u003e class inherits from \u003ccode\u003ejava.lang.Object\u003c/code\u003e and provides a set of static methods for interacting with the App Engine environment.\u003c/p\u003e\n"],["\u003cp\u003eIt allows for both asynchronous (\u003ccode\u003emakeAsyncCall\u003c/code\u003e) and synchronous (\u003ccode\u003emakeSyncCall\u003c/code\u003e) API calls, with options to specify parameters such as service name, method, request data, and API configurations.\u003c/p\u003e\n"],["\u003cp\u003eThe class supports environment management, allowing retrieval, setting, and clearing of the environment for the current thread via methods like \u003ccode\u003egetCurrentEnvironment\u003c/code\u003e, \u003ccode\u003esetEnvironmentForCurrentThread\u003c/code\u003e, and \u003ccode\u003eclearEnvironmentForCurrentThread\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt also provides methods to manage delegates (\u003ccode\u003egetDelegate\u003c/code\u003e, \u003ccode\u003esetDelegate\u003c/code\u003e) and environment factories (\u003ccode\u003egetEnvironmentFactory\u003c/code\u003e, \u003ccode\u003esetEnvironmentFactory\u003c/code\u003e), which likely control how API calls are handled and environments are created.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eApiProxy\u003c/code\u003e class facilitates logging through the \u003ccode\u003elog\u003c/code\u003e and \u003ccode\u003eflushLogs\u003c/code\u003e methods and also allows the retrieval of the request threads using \u003ccode\u003egetRequestThreads\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Class ApiProxy (2.0.0)\n\n public class ApiProxy\n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e ApiProxy \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nStatic Methods\n--------------\n\n### clearEnvironmentForCurrentThread()\n\n public static void clearEnvironmentForCurrentThread()\n\n### flushLogs()\n\n public static void flushLogs()\n\n### getCurrentEnvironment()\n\n public static ApiProxy.Environment getCurrentEnvironment()\n\n### getDelegate()\n\n public static ApiProxy.Delegate getDelegate()\n\n### getEnvironmentFactory()\n\n public static synchronized ApiProxy.EnvironmentFactory getEnvironmentFactory()\n\n### getRequestThreads()\n\n public static List\u003cThread\u003e getRequestThreads()\n\n### log(ApiProxy.LogRecord arg0)\n\n public static void log(ApiProxy.LogRecord arg0)\n\n### makeAsyncCall(String arg0, String arg1, byte\\[\\] arg2)\n\n public static Future\u003cbyte[]\u003e makeAsyncCall(String arg0, String arg1, byte[] arg2)\n\n### makeAsyncCall(String arg0, String arg1, byte\\[\\] arg2, ApiProxy.ApiConfig arg3)\n\n public static Future\u003cbyte[]\u003e makeAsyncCall(String arg0, String arg1, byte[] arg2, ApiProxy.ApiConfig arg3)\n\n### makeSyncCall(String arg0, String arg1, byte\\[\\] arg2)\n\n public static byte[] makeSyncCall(String arg0, String arg1, byte[] arg2)\n\n### makeSyncCall(String arg0, String arg1, byte\\[\\] arg2, ApiProxy.ApiConfig arg3)\n\n public static byte[] makeSyncCall(String arg0, String arg1, byte[] arg2, ApiProxy.ApiConfig arg3)\n\n### setDelegate(ApiProxy.Delegate\\\u003c?\\\u003e arg0)\n\n public static void setDelegate(ApiProxy.Delegate\u003c?\u003e arg0)\n\n### setEnvironmentFactory(ApiProxy.EnvironmentFactory arg0)\n\n public static synchronized void setEnvironmentFactory(ApiProxy.EnvironmentFactory arg0)\n\n### setEnvironmentForCurrentThread(ApiProxy.Environment arg0)\n\n public static void setEnvironmentForCurrentThread(ApiProxy.Environment arg0)"]]