[[["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-08-28 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eClientStream\u003c/code\u003e class is 2.63.1, accessible via the provided link.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eClientStream\u003c/code\u003e is a wrapper interface used to send requests to a server and requires a call to either \u003ccode\u003ecloseSend()\u003c/code\u003e or \u003ccode\u003ecloseSendWithError(Throwable)\u003c/code\u003e after sending requests.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ecloseSend()\u003c/code\u003e is the method used to close the stream, and it must be the last call made on the \u003ccode\u003eClientStream\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ecloseSendWithError(Throwable t)\u003c/code\u003e allows closing the stream with an error, where 't' represents the error and must be the last call made.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eisSendReady()\u003c/code\u003e method can be used as an optimization hint to determine if a new request can be sent without excessive buffering.\u003c/p\u003e\n"]]],[],null,["# Interface ClientStream<RequestT> (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientStream)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.rpc.ClientStream)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.rpc.ClientStream)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.rpc.ClientStream)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.rpc.ClientStream)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.rpc.ClientStream)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.rpc.ClientStream)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.rpc.ClientStream)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.rpc.ClientStream)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.rpc.ClientStream)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.rpc.ClientStream)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.rpc.ClientStream)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.rpc.ClientStream)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.rpc.ClientStream)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.rpc.ClientStream)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.rpc.ClientStream)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.rpc.ClientStream)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.rpc.ClientStream)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.rpc.ClientStream)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.rpc.ClientStream)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.rpc.ClientStream)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.rpc.ClientStream)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.rpc.ClientStream)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.rpc.ClientStream)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.rpc.ClientStream)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.rpc.ClientStream)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.rpc.ClientStream)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.rpc.ClientStream)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.rpc.ClientStream)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.rpc.ClientStream)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.rpc.ClientStream)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.rpc.ClientStream)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.rpc.ClientStream)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.rpc.ClientStream)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.rpc.ClientStream)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.rpc.ClientStream)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.rpc.ClientStream)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.rpc.ClientStream)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.rpc.ClientStream)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.rpc.ClientStream)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.rpc.ClientStream)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.rpc.ClientStream)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.rpc.ClientStream)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.rpc.ClientStream)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.rpc.ClientStream)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.rpc.ClientStream)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.rpc.ClientStream)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.rpc.ClientStream)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.rpc.ClientStream)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.rpc.ClientStream)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.rpc.ClientStream)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.rpc.ClientStream)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.rpc.ClientStream)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.rpc.ClientStream) \n\n public interface ClientStream\u003cRequestT\u003e\n\nA wrapper used to send requests to the server.\n\nAfter sending requests, users must either call [#closeSend()](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientStream#com_google_api_gax_rpc_ClientStream_closeSend__) or [#closeSendWithError(Throwable)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ClientStream#com_google_api_gax_rpc_ClientStream_closeSendWithError_java_lang_Throwable_) on the stream. The error, if any, will be propagated to the\nserver.\n\nExample usage: \n\n\n ClientStream\u003cString\u003e stream = ...;\n List\u003cString\u003e lines = getLinesFromFile();\n for (String line : lines) {\n stream.send(line);\n }\n stream.closeSend();\n \nMethods\n-------\n\n### closeSend()\n\n public abstract void closeSend()\n\nCloses the stream. If called, this must be the last call on this `ClientStream`.\n\nNote that if `close()` itself throws, a further call to `closeSendWithError` is\nnot allowed.\n\n### closeSendWithError(Throwable t)\n\n public abstract void closeSendWithError(Throwable t)\n\nCloses the stream with an error. If called, this must be the last call on this `\nClientStream`.\n\n### isSendReady()\n\n public abstract boolean isSendReady()\n\nReports whether a new request can be sent without excessive buffering.\n\nThis is only an optimization hint to the user. It is correct, if suboptimal, to call `\nsend` if `isSendReady` returns false.\n\n### send(RequestT request)\n\n public abstract void send(RequestT request)\n\nSends a request to the server. It is an error to call this if the stream is already closed."]]