@Override public void run() { try { HttpRequest httpRequest = createHttpRequest(); HttpResponse httpResponse = httpRequest.execute(); if (!httpResponse.isSuccessStatusCode()) { ApiExceptionFactory.createException( null, HttpJsonStatusCode.of(httpResponse.getStatusCode(), httpResponse.getStatusMessage()), false); } if (getApiMethodDescriptor().getResponseParser() != null) { ResponseT response = getApiMethodDescriptor().getResponseParser().parse(httpResponse.getContent()); getResponseFuture().set(response); } else { getResponseFuture().set(null); } } catch (Exception e) { getResponseFuture().setException(e); } }
getApiMethodDescriptor().getRequestFormatter(); Credentials credentials = getHttpJsonCallOptions().getCredentials(); if (credentials != null) { requestFactory = getHttpTransport().createRequestFactory(new HttpCredentialsAdapter(credentials)); } else { requestFactory = getHttpTransport().createRequestFactory(); String requestBody = requestFormatter.getRequestBody(getRequest()); JsonHttpContent jsonHttpContent = null; if (!Strings.isNullOrEmpty(requestBody)) { getJsonFactory().createJsonParser(requestBody).parse(tokenRequest); jsonHttpContent = new JsonHttpContent(getJsonFactory(), tokenRequest) .setMediaType((new HttpMediaType("application/json"))); GenericUrl url = new GenericUrl(getEndpoint() + requestFormatter.getPath(getRequest())); Map<String, List<String>> queryParams = requestFormatter.getQueryParamNames(getRequest()); for (Entry<String, List<String>> queryParam : queryParams.entrySet()) { if (queryParam.getValue() != null) { requestFactory.buildRequest(getApiMethodDescriptor().getHttpMethod(), url, jsonHttpContent); for (HttpJsonHeaderEnhancer enhancer : getHeaderEnhancers()) { enhancer.enhance(httpRequest.getHeaders()); httpRequest.setParser(new JsonObjectParser(getJsonFactory())); return httpRequest;
HttpRequestRunnable.<InsertFrogRequest, Void>newBuilder() .setHttpJsonCallOptions(fakeCallOptions) .setEndpoint(ENDPOINT) .build(); HttpRequest httpRequest = httpRequestRunnable.createHttpRequest(); String expectedUrl = ENDPOINT + "name/tree_frog" + "?requestId=request57"; Truth.assertThat(httpRequest.getUrl().toString()).isEqualTo(expectedUrl);
@Override public <ResponseT, RequestT> ApiFuture<ResponseT> issueFutureUnaryCall( HttpJsonCallOptions callOptions, RequestT request, ApiMethodDescriptor<RequestT, ResponseT> methodDescriptor) { final SettableApiFuture<ResponseT> responseFuture = SettableApiFuture.create(); HttpRequestRunnable<RequestT, ResponseT> runnable = HttpRequestRunnable.<RequestT, ResponseT>newBuilder() .setResponseFuture(responseFuture) .setApiMethodDescriptor(methodDescriptor) .setHeaderEnhancers(headerEnhancers) .setHttpJsonCallOptions(callOptions) .setHttpTransport(httpTransport) .setJsonFactory(jsonFactory) .setRequest(request) .setEndpoint(endpoint) .build(); executor.execute(runnable); return responseFuture; }
@Test public void testRequestUrl() throws IOException { HttpRequest httpRequest = httpRequestRunnable.createHttpRequest(); String expectedUrl = ENDPOINT + "name/feline" + "?food=bird&food=mouse&size=small"; Truth.assertThat(httpRequest.getUrl().toString()).isEqualTo(expectedUrl); }
@Override public <ResponseT, RequestT> ApiFuture<ResponseT> issueFutureUnaryCall( HttpJsonCallOptions callOptions, RequestT request, ApiMethodDescriptor<RequestT, ResponseT> methodDescriptor) { final SettableApiFuture<ResponseT> responseFuture = SettableApiFuture.create(); HttpRequestRunnable<RequestT, ResponseT> runnable = HttpRequestRunnable.<RequestT, ResponseT>newBuilder() .setResponseFuture(responseFuture) .setApiMethodDescriptor(methodDescriptor) .setHeaderEnhancers(headerEnhancers) .setHttpJsonCallOptions(callOptions) .setHttpTransport(httpTransport) .setJsonFactory(jsonFactory) .setRequest(request) .setEndpoint(endpoint) .build(); executor.execute(runnable); return responseFuture; }
getApiMethodDescriptor().getRequestFormatter(); Credentials credentials = getHttpJsonCallOptions().getCredentials(); if (credentials != null) { requestFactory = getHttpTransport().createRequestFactory(new HttpCredentialsAdapter(credentials)); } else { requestFactory = getHttpTransport().createRequestFactory(); String requestBody = requestFormatter.getRequestBody(getRequest()); HttpContent jsonHttpContent; if (!Strings.isNullOrEmpty(requestBody)) { getJsonFactory().createJsonParser(requestBody).parse(tokenRequest); jsonHttpContent = new JsonHttpContent(getJsonFactory(), tokenRequest) .setMediaType((new HttpMediaType("application/json"))); } else { GenericUrl url = new GenericUrl(getEndpoint() + requestFormatter.getPath(getRequest())); Map<String, List<String>> queryParams = requestFormatter.getQueryParamNames(getRequest()); for (Entry<String, List<String>> queryParam : queryParams.entrySet()) { if (queryParam.getValue() != null) { requestFactory.buildRequest(getApiMethodDescriptor().getHttpMethod(), url, jsonHttpContent); for (HttpJsonHeaderEnhancer enhancer : getHeaderEnhancers()) { enhancer.enhance(httpRequest.getHeaders()); httpRequest.setParser(new JsonObjectParser(getJsonFactory())); return httpRequest;
@Override public void run() { try { HttpRequest httpRequest = createHttpRequest(); HttpResponse httpResponse = httpRequest.execute(); if (!httpResponse.isSuccessStatusCode()) { ApiExceptionFactory.createException( null, HttpJsonStatusCode.of(httpResponse.getStatusCode(), httpResponse.getStatusMessage()), false); } if (getApiMethodDescriptor().getResponseParser() != null) { ResponseT response = getApiMethodDescriptor().getResponseParser().parse(httpResponse.getContent()); getResponseFuture().set(response); } else { getResponseFuture().set(null); } } catch (Exception e) { getResponseFuture().setException(e); } }
HttpRequestRunnable.<CatMessage, Void>newBuilder() .setHttpJsonCallOptions(fakeCallOptions) .setEndpoint(ENDPOINT)