public void initialize( HttpRequest request ) { configureHttpRequest( request, numberOfRetries, readTimeout ); request.setInterceptor( interceptor ); if ( responseInterceptor != null ) { request.setResponseInterceptor( responseInterceptor ); } } }
/** Returns a request factory suitable for testing. Use this instead of createRequestFactory. */ public HttpRequestFactory createFakeRequestFactory() { return this.createRequestFactory( request -> request.setResponseInterceptor(ReportResponseInterceptorTest.this.interceptor)); } }
@Override public byte[] sign(byte[] payload) throws IOException { String encodedUrl = String.format(IAM_SIGN_BLOB_URL, serviceAccount); HttpResponse response = null; String encodedPayload = BaseEncoding.base64().encode(payload); Map<String, String> content = ImmutableMap.of("bytesToSign", encodedPayload); try { HttpRequest request = requestFactory.buildPostRequest(new GenericUrl(encodedUrl), new JsonHttpContent(jsonFactory, content)); request.setParser(new JsonObjectParser(jsonFactory)); request.setResponseInterceptor(interceptor); response = request.execute(); SignBlobResponse parsed = response.parseAs(SignBlobResponse.class); return BaseEncoding.base64().decode(parsed.signature); } finally { if (response != null) { try { response.disconnect(); } catch (IOException ignored) { // Ignored } } } }
request.setResponseInterceptor(null); request.setInterceptor( makeInterceptor(interceptors)); request.setResponseInterceptor( makeResponseInterceptor(responseInterceptors));
@Override protected Void execute() throws FirebaseInstanceIdException { String url = String.format( "%s/project/%s/instanceId/%s", IID_SERVICE_URL, projectId, instanceId); HttpResponse response = null; try { HttpRequest request = requestFactory.buildDeleteRequest(new GenericUrl(url)); request.setParser(new JsonObjectParser(jsonFactory)); request.setResponseInterceptor(interceptor); response = request.execute(); ByteStreams.exhaust(response.getContent()); } catch (Exception e) { handleError(instanceId, e); } finally { disconnectQuietly(response); } return null; } };
/** * Gets the report HTTP URL connection given report URL and proper information needed to * authenticate the request. * * @param reportUrl the URL of the report response or download * @return the report HTTP URL connection * @throws AuthenticationException If OAuth authorization fails. */ @VisibleForTesting HttpRequestFactory getHttpRequestFactory(final String reportUrl, String version) throws AuthenticationException { final HttpHeaders httpHeaders = createHeaders(reportUrl, version); return httpTransport.createRequestFactory( request -> { request.setHeaders(httpHeaders); request.setConnectTimeout(reportDownloadTimeout); request.setReadTimeout(reportDownloadTimeout); request.setThrowExceptionOnExecuteError(false); request.setLoggingEnabled(true); request.setResponseInterceptor(responseInterceptor); }); }
request.setResponseInterceptor(null); request.setInterceptor( makeInterceptor(interceptors)); request.setResponseInterceptor( makeResponseInterceptor(responseInterceptors));
/** * Gets the report HTTP URL connection given report URL and proper information needed to * authenticate the request. * * @param reportUrl the URL of the report response or download * @return the report HTTP URL connection * @throws AuthenticationException If OAuth authorization fails. */ @VisibleForTesting HttpRequestFactory getHttpRequestFactory(final String reportUrl, String version) throws AuthenticationException { final HttpHeaders httpHeaders = createHeaders(reportUrl, version); return httpTransport.createRequestFactory( request -> { request.setHeaders(httpHeaders); request.setConnectTimeout(reportDownloadTimeout); request.setReadTimeout(reportDownloadTimeout); request.setThrowExceptionOnExecuteError(false); request.setLoggingEnabled(true); request.setResponseInterceptor(responseInterceptor); }); }
@Override protected String execute() throws FirebaseMessagingException { ImmutableMap.Builder<String, Object> payload = ImmutableMap.<String, Object>builder() .put("message", message); if (dryRun) { payload.put("validate_only", true); } HttpResponse response = null; try { HttpRequest request = requestFactory.buildPostRequest( new GenericUrl(url), new JsonHttpContent(jsonFactory, payload.build())); request.getHeaders().set("X-GOOG-API-FORMAT-VERSION", "2"); request.setParser(new JsonObjectParser(jsonFactory)); request.setResponseInterceptor(interceptor); response = request.execute(); MessagingServiceResponse parsed = new MessagingServiceResponse(); jsonFactory.createJsonParser(response.getContent()).parseAndClose(parsed); return parsed.name; } catch (HttpResponseException e) { handleSendHttpError(e); return null; } catch (IOException e) { throw new FirebaseMessagingException( INTERNAL_ERROR, "Error while calling FCM backend service", e); } finally { disconnectQuietly(response); } } };
request.setParser(new JsonObjectParser(jsonFactory)); request.getHeaders().set(CLIENT_VERSION_HEADER, clientVersion); request.setResponseInterceptor(interceptor); response = request.execute(); return response.parseAs(clazz);
request.getHeaders().set("access_token_auth", "true"); request.setParser(new JsonObjectParser(jsonFactory)); request.setResponseInterceptor(interceptor); response = request.execute(); InstanceIdServiceResponse parsed = new InstanceIdServiceResponse();
httpRequest.setResponseInterceptor(new HttpResponseInterceptor() {
<T> void makeRequest( HttpRequest baseRequest, T parsedResponseInstance, String requestIdentifier, String requestIdentifierDescription) throws FirebaseProjectManagementException { HttpResponse response = null; try { baseRequest.getHeaders().set(CLIENT_VERSION_HEADER, clientVersion); baseRequest.setParser(new JsonObjectParser(jsonFactory)); baseRequest.setResponseInterceptor(interceptor); response = baseRequest.execute(); jsonFactory.createJsonParser(response.getContent(), Charsets.UTF_8) .parseAndClose(parsedResponseInstance); } catch (Exception e) { handleError(requestIdentifier, requestIdentifierDescription, e); } finally { disconnectQuietly(response); } }
@Override public void initialize(HttpRequest request) throws IOException { // Set a timeout for hanging-gets. // TODO: Do this exclusively for work requests. request.setReadTimeout(HANGING_GET_TIMEOUT_SEC * 1000); request.setWriteTimeout(this.writeTimeout); LoggingHttpBackOffHandler loggingHttpBackOffHandler = new LoggingHttpBackOffHandler( sleeper, // Back off on retryable http errors and IOExceptions. // A back-off multiplier of 2 raises the maximum request retrying time // to approximately 5 minutes (keeping other back-off parameters to // their default values). new ExponentialBackOff.Builder().setNanoClock(nanoClock).setMultiplier(2).build(), new ExponentialBackOff.Builder().setNanoClock(nanoClock).setMultiplier(2).build(), ignoredResponseCodes); request.setUnsuccessfulResponseHandler(loggingHttpBackOffHandler); request.setIOExceptionHandler(loggingHttpBackOffHandler); // Set response initializer if (responseInterceptor != null) { request.setResponseInterceptor(responseInterceptor); } }