#grpc #charles-proxy
Вопрос:
Я не могу (SSL) прокси — сервер для любых вызовов gRPC из моего приложения для Android с помощью Charles 4.6.2. Время ожидания запроса всегда истекает Received response header. Waiting for response body
. Интересно, что я вижу содержимое запроса и ответа (тело), но клиент все равно DEADLINE_EXCEEDED
выдает код ошибки. Я предполагаю, что что-то не получается на стороне Чарльза при подтверждении полученного ответа, потому DEADLINE_EXCEEDED
что это может произойти даже при успешном ответе. Однако отключение SSL-прокси работает по какой-то причине.
Это пример журнала из консоли отладки Чарльза:
22:42:03 FINE com.xk72.proxy.http.HttpProxyHandler Establishing HTTP/2 channel to CONNECT https://server.endpoint 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] CLIENT settings 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] SERVER frame: SETTINGS 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER settings 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] CLIENT frame: SETTINGS 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER settings 0 ack 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] CLIENT frame: SETTINGS 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER window update for 0 268369921 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] CLIENT frame: WINDOW_UPDATE 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] CLIENT headers 3 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Parsed #307075206 [server.endpoint] CLIENT header 3 'POST https://server.endpoint/server.endpoint/MyRpcCall HTTP/2.0' 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] CLIENT settings 0 ack 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.StreamHandler #307075206 [server.endpoint] stream 3 starting 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] SERVER frame: SETTINGS 0 2021/11/11 22:42:03 FINE com.xk72.proxy.http.HttpProxyHandler Received request POST /server.endpoint/MyRpcCall HTTP/2.0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] CLIENT data stream: 3 size: 107 END 2021/11/11 22:42:03 FINE com.xk72.proxy.http.ProxyHttp Sending request POST /server.endpoint/MyRpcCall HTTP/2.0 to com.xk72.proxy.http2.v@9e9d902 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] SERVER frame: HEADERS 3 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] SERVER frame: DATA 3 size: 107 END 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER headers 3 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Parsed #307075206 [server.endpoint] SERVER header 3 'HTTP/2.0 200' 2021/11/11 22:42:03 FINE com.xk72.proxy.http.ProxyHttp Received response HTTP/2.0 200 for request POST /server.endpoint/MyRpcCall HTTP/2.0 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER data stream: 3 size: 229 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Receive #307075206 [server.endpoint] SERVER headers 3 END 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler Parsed #307075206 [server.endpoint] SERVER header 3 'lt;emptygt;' 2021/11/11 22:42:03 FINE com.xk72.proxy.http2.Frame Sending #307075206 [server.endpoint] CLIENT frame: HEADERS 3 2021/11/11 22:42:03 INFO com.xk72.proxy.http2.Http2ProxyHandler.FrameHandler #307075206 [server.endpoint] SERVER frame handler runtime error 2021/11/11 22:42:03 java.lang.IllegalStateException 2021/11/11 22:42:03 at com.xk72.proxy.http2.f.a(Unknown Source) 2021/11/11 22:42:03 at com.xk72.proxy.http2.A.a(Unknown Source) 2021/11/11 22:42:03 at com.xk72.proxy.http2.q.run(Unknown Source) 2021/11/11 22:42:03 at com.xk72.util.d.run(Unknown Source) 2021/11/11 22:42:03 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 2021/11/11 22:42:03 at java.base/java.util.concurrent.FutureTask.run(Unknown Source) 2021/11/11 22:42:03 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 2021/11/11 22:42:03 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 2021/11/11 22:42:03 at java.base/java.lang.Thread.run(Unknown Source)
Что также интересно, так это то, что журнал содержимого сообщения содержит 3 пустые next message
строки перед печатью фактического сообщения. Я предполагаю, что это связано с префиксом длины, но я не уверен.
gt;--------------------------------next message--------------------------------lt; gt;--------------------------------next message--------------------------------lt; gt;--------------------------------next message--------------------------------lt; gt;--------------------------------next message--------------------------------lt; field: "test"