@Override public void start(ClientCall.Listener<RespT> responseListener, Metadata headers) { for (Entry<Key<String>, String> staticHeader : staticHeaders.entrySet()) { headers.put(staticHeader.getKey(), staticHeader.getValue()); } Map<Key<String>, String> dynamicHeaders = CallOptionsUtil.getDynamicHeadersOption(callOptions); for (Entry<Key<String>, String> dynamicHeader : dynamicHeaders.entrySet()) { headers.put(dynamicHeader.getKey(), dynamicHeader.getValue()); } super.start(responseListener, headers); } };
@Override public void start(ClientCall.Listener<RespT> responseListener, Metadata headers) { for (Entry<Key<String>, String> staticHeader : staticHeaders.entrySet()) { headers.put(staticHeader.getKey(), staticHeader.getValue()); } Map<Key<String>, String> dynamicHeaders = CallOptionsUtil.getDynamicHeadersOption(callOptions); for (Entry<Key<String>, String> dynamicHeader : dynamicHeaders.entrySet()) { headers.put(dynamicHeader.getKey(), dynamicHeader.getValue()); } super.start(responseListener, headers); } };
@Test public void testPutAndGetDynamicHeaderOption() throws Exception { String encodedRequestParams = "param1=value¶m2.param3=value23"; CallOptions options = CallOptionsUtil.putRequestParamsDynamicHeaderOption( CallOptions.DEFAULT, encodedRequestParams); Map<Key<String>, String> headers = CallOptionsUtil.getDynamicHeadersOption(options); assertEquals( ImmutableMap.of(CallOptionsUtil.REQUEST_PARAMS_HEADER_KEY, encodedRequestParams), headers); }
@Test public void testPutAndGetDynamicHeaderOptionEmpty() throws Exception { CallOptions options = CallOptionsUtil.putRequestParamsDynamicHeaderOption(CallOptions.DEFAULT, ""); assertSame(CallOptions.DEFAULT, options); Map<Key<String>, String> headers = CallOptionsUtil.getDynamicHeadersOption(options); assertTrue(headers.isEmpty()); }
@Test public void testWithRequestParamsDynamicHeaderOption() { String encodedRequestParams = "param1=value¶m2.param3=value23"; GrpcCallContext context = GrpcCallContext.createDefault().withRequestParamsDynamicHeaderOption(encodedRequestParams); Map<Key<String>, String> headers = CallOptionsUtil.getDynamicHeadersOption(context.getCallOptions()); assertEquals( ImmutableMap.of(CallOptionsUtil.REQUEST_PARAMS_HEADER_KEY, encodedRequestParams), headers); }