java.net.HttpURLConnection#addRequestProperty ( )源码实例Demo

下面列出了java.net.HttpURLConnection#addRequestProperty ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jdk8u-jdk   文件: UnmodifiableMaps.java
void doClient(URI uri) throws Exception {
    HttpURLConnection uc = (HttpURLConnection) uri.toURL().openConnection();

    // Test1: getRequestProperties is unmodifiable
    System.out.println("Check getRequestProperties");
    checkUnmodifiable(uc.getRequestProperties());
    uc.addRequestProperty("X", "V");
    uc.addRequestProperty("X1", "V1");
    checkUnmodifiable(uc.getRequestProperties());

    int resp = uc.getResponseCode();
    check(resp == 200,
          "Unexpected response code. Expected 200, got " + resp);

    // Test2: getHeaderFields is unmodifiable
    System.out.println("Check getHeaderFields");
    checkUnmodifiable(uc.getHeaderFields());
    // If the implementation does caching, check again.
    checkUnmodifiable(uc.getHeaderFields());
}
 
源代码2 项目: Wurst7   文件: JGoogleAnalyticsTracker.java
private static void dispatchRequest(String argURL, String userAgent)
{
	try
	{
		URL url = new URL(argURL);
		HttpURLConnection connection =
			(HttpURLConnection)url.openConnection(proxy);
		connection.setRequestMethod("GET");
		connection.setInstanceFollowRedirects(true);
		if(userAgent != null)
			connection.addRequestProperty("User-Agent", userAgent);
		connection.connect();
		int responseCode = connection.getResponseCode();
		if(responseCode != HttpURLConnection.HTTP_OK)
			logger.log(Level.SEVERE,
				"JGoogleAnalyticsTracker: Error requesting url '" + argURL
					+ "', received response code " + responseCode);
		else
			logger.log(Level.CONFIG,
				"JGoogleAnalyticsTracker: Tracking success for url '"
					+ argURL + "'");
	}catch(Exception e)
	{
		logger.log(Level.SEVERE, "Error making tracking request", e);
	}
}
 
源代码3 项目: barterli_android   文件: HurlStack.java
private static void addBodyIfExists(HttpURLConnection connection,
                Request<?> request) throws IOException, AuthFailureError {

    byte[] body = request.getBody();
    if (body != null) {
        if (VolleyLog.sDebug) {
            VolleyLog.v("Request url: %s\nBody: %s", request.getUrl(), new String(body, HTTP.UTF_8));
        }
        connection.setDoOutput(true);
        connection.addRequestProperty(HEADER_CONTENT_TYPE, request
                        .getBodyContentType());
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(body);
        out.close();
    }
}
 
源代码4 项目: openjdk-8   文件: UnmodifiableMaps.java
void doClient(URI uri) throws Exception {
    HttpURLConnection uc = (HttpURLConnection) uri.toURL().openConnection();

    // Test1: getRequestProperties is unmodifiable
    System.out.println("Check getRequestProperties");
    checkUnmodifiable(uc.getRequestProperties());
    uc.addRequestProperty("X", "V");
    uc.addRequestProperty("X1", "V1");
    checkUnmodifiable(uc.getRequestProperties());

    int resp = uc.getResponseCode();
    check(resp == 200,
          "Unexpected response code. Expected 200, got " + resp);

    // Test2: getHeaderFields is unmodifiable
    System.out.println("Check getHeaderFields");
    checkUnmodifiable(uc.getHeaderFields());
    // If the implementation does caching, check again.
    checkUnmodifiable(uc.getHeaderFields());
}
 
static private void setHeaders(HttpURLConnection conn, List<String> headers, String encoding) {
    if (null != headers) {
        for (Iterator<String> iter = headers.iterator(); iter.hasNext(); ) {
            conn.addRequestProperty(iter.next(), iter.next());
        }
    }
    conn.addRequestProperty("Client-Version", MQVersion.getVersionDesc(MQVersion.CURRENT_VERSION));
    conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + encoding);

    String ts = String.valueOf(System.currentTimeMillis());
    conn.addRequestProperty("Metaq-Client-RequestTS", ts);
}
 
源代码6 项目: codenvy   文件: JenkinsConnector.java
private String doRequest(String requestMethod, String requestUrl, String contentType, String data)
    throws IOException, ServerException {
  URL url = new URL(requestUrl + "/job/" + jobName + "/config.xml");
  HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
  try {
    String basicAuth =
        "Basic " + new String(Base64.getEncoder().encode(url.getUserInfo().getBytes()));
    httpConnection.setRequestProperty("Authorization", basicAuth);
    httpConnection.setRequestMethod(requestMethod);
    httpConnection.addRequestProperty(HttpHeaders.CONTENT_TYPE, contentType);
    httpConnection.setDoOutput(true);

    if (!isNullOrEmpty(data)) {
      try (OutputStream outputStream = httpConnection.getOutputStream()) {
        outputStream.write(data.getBytes());
      }
    }
    final int responseCode = httpConnection.getResponseCode();
    InputStream inputStream = httpConnection.getInputStream();
    if ((responseCode / 100) != 2) {
      InputStream errorStream = httpConnection.getErrorStream();
      throw new ServerException(
          readAndCloseQuietly(errorStream != null ? errorStream : inputStream));
    }
    return readAndCloseQuietly(inputStream);
  } finally {
    if (httpConnection != null) {
      httpConnection.disconnect();
    }
  }
}
 
源代码7 项目: msf4j   文件: HttpServerTest.java
@Test
public void testListHeaderParam() throws IOException {
    HttpURLConnection urlConn = request("/test/v1/listHeaderParam", HttpMethod.GET);
    urlConn.addRequestProperty("name", "name1,name3,name2,name1");
    assertEquals(200, urlConn.getResponseCode());
    assertEquals("name1,name3,name2,name1", getContent(urlConn));
    urlConn.disconnect();
}
 
源代码8 项目: incubator-tez   文件: HttpConnection.java
private void setupConnection() throws IOException {
  connection = (HttpURLConnection) url.openConnection();
  if (sslFactory != null) {
    try {
      ((HttpsURLConnection) connection).setSSLSocketFactory(sslFactory
        .createSSLSocketFactory());
      ((HttpsURLConnection) connection).setHostnameVerifier(sslFactory
        .getHostnameVerifier());
    } catch (GeneralSecurityException ex) {
      throw new IOException(ex);
    }
  }
  // generate hash of the url
  msgToEncode = SecureShuffleUtils.buildMsgFrom(url);
  encHash = SecureShuffleUtils.hashFromString(msgToEncode, jobTokenSecret);

  // put url hash into http header
  connection.addRequestProperty(SecureShuffleUtils.HTTP_HEADER_URL_HASH,
    encHash);
  // set the read timeout
  connection.setReadTimeout(httpConnParams.readTimeout);
  // put shuffle version into http header
  connection.addRequestProperty(ShuffleHeader.HTTP_HEADER_NAME,
    ShuffleHeader.DEFAULT_HTTP_HEADER_NAME);
  connection.addRequestProperty(ShuffleHeader.HTTP_HEADER_VERSION,
    ShuffleHeader.DEFAULT_HTTP_HEADER_VERSION);
}
 
源代码9 项目: AndroidProjects   文件: HurlStack.java
private static void addBodyIfExists(HttpURLConnection connection, Request<?> request)
        throws IOException, AuthFailureError {
    byte[] body = request.getBody();
    if (body != null) {
        connection.setDoOutput(true);
        connection.addRequestProperty(HEADER_CONTENT_TYPE, request.getBodyContentType());
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(body);
        out.close();
    }
}
 
源代码10 项目: cxf   文件: Cxf6319TestCase.java
@Test
public void testDeclarationsInEnvelope() throws Exception {
    Endpoint ep = Endpoint.publish("http://localhost:" + PORT + "/SoapContext/SoapPort", new ServiceImpl());

    try {
        HttpURLConnection httpConnection =
                getHttpConnection("http://localhost:" + PORT + "/SoapContext/SoapPort/echo");
        httpConnection.setDoOutput(true);

        InputStream reqin = getClass().getResourceAsStream("request.xml");
        assertNotNull("could not load test data", reqin);

        httpConnection.setRequestMethod("POST");
        httpConnection.addRequestProperty("Content-Type", "text/xml");
        OutputStream reqout = httpConnection.getOutputStream();
        IOUtils.copy(reqin, reqout);
        reqout.close();

        int responseCode = httpConnection.getResponseCode();
        InputStream errorStream = httpConnection.getErrorStream();
        String error = null;
        if (errorStream != null) {
            error = IOUtils.readStringFromStream(errorStream);
        }
        assertEquals(error, 200, responseCode);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        ep.stop();
    }
}
 
源代码11 项目: lemon   文件: StoreClientImpl.java
public StoreDTO saveStore(String budgetName, DataSource dataSource,
        String tenantId) throws Exception {
    String url = baseUrl + path;
    HttpURLConnection conn = (HttpURLConnection) new URL(url)
            .openConnection();
    conn.setConnectTimeout(1000);
    conn.setReadTimeout(1000);

    conn.setRequestMethod("POST");

    RequestConfig requestConfig = new RequestConfig();
    requestConfig.setMethod("POST");
    requestConfig.setPath(path);
    requestConfig.setAccessKey(accessKey);
    requestConfig.setAccessSecret(accessSecret);
    conn.addRequestProperty("authorization",
            rpcAuthHelper.generateAuthorizationStore(requestConfig));
    conn.setDoOutput(true);
    IOUtils.copy(dataSource.getInputStream(), conn.getOutputStream());

    logger.info(conn.getResponseCode() + " " + conn.getResponseMessage());

    InputStream is = null;

    if (conn.getResponseCode() == 200) {
        is = conn.getInputStream();
    } else {
        is = conn.getErrorStream();
    }

    String result = IOUtils.toString(is, "UTF-8");

    logger.info("result : {}", result);

    return null;
}
 
源代码12 项目: SimplifyReader   文件: HurlStack.java
private static void addBodyIfExists(HttpURLConnection connection, Request<?> request)
        throws IOException, AuthFailureError {
    byte[] body = request.getBody();
    if (body != null) {
        connection.setDoOutput(true);
        connection.addRequestProperty(HEADER_CONTENT_TYPE, request.getBodyContentType());
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(body);
        out.close();
    }
}
 
源代码13 项目: DaVinci   文件: HurlStack.java
private static void addBodyIfExists(HttpURLConnection connection, Request<?> request)
        throws IOException, AuthFailureError {
    byte[] body = request.getBody();
    if (body != null) {
        connection.setDoOutput(true);
        connection.addRequestProperty(HEADER_CONTENT_TYPE, request.getBodyContentType());
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(body);
        out.close();
    }
}
 
/**
 * Builds the {@link HttpURLConnection} instance that can be used to execute the request.
 *
 * TODO: Remove @UsedForTesting after this method is actually used.
 */
@UsedForTesting
public HttpURLConnection build() throws IOException {
    if (mUrl == null) {
        throw new IllegalArgumentException("A URL must be specified!");
    }
    final HttpURLConnection connection = (HttpURLConnection) mUrl.openConnection();
    connection.setConnectTimeout(mConnectTimeoutMillis);
    connection.setReadTimeout(mReadTimeoutMillis);
    connection.setUseCaches(mUseCache);
    switch (mMode) {
        case MODE_UPLOAD_ONLY:
            connection.setDoInput(true);
            connection.setDoOutput(false);
            break;
        case MODE_DOWNLOAD_ONLY:
            connection.setDoInput(false);
            connection.setDoOutput(true);
            break;
        case MODE_BI_DIRECTIONAL:
            connection.setDoInput(true);
            connection.setDoOutput(true);
            break;
    }
    for (final Entry<String, String> entry : mHeaderMap.entrySet()) {
        connection.addRequestProperty(entry.getKey(), entry.getValue());
    }
    if (mContentLength >= 0) {
        connection.setFixedLengthStreamingMode(mContentLength);
    }
    return connection;
}
 
源代码15 项目: KJFrameForAndroid   文件: HttpConnectStack.java
/**
 * 如果有body则添加
 */
private static void addBodyIfExists(HttpURLConnection connection,
                                    Request<?> request) throws IOException {
    byte[] body = request.getBody();
    if (body != null) {
        connection.setDoOutput(true);
        connection.addRequestProperty(HEADER_CONTENT_TYPE,
                request.getBodyContentType());
        DataOutputStream out = new DataOutputStream(
                connection.getOutputStream());
        out.write(body);
        out.close();
    }
}
 
源代码16 项目: SaveVolley   文件: HurlStack.java
@Override
public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders)
        throws IOException, AuthFailureError {
    String url = request.getUrl();
    HashMap<String, String> map = new HashMap<String, String>();
    map.putAll(request.getHeaders());
    map.putAll(additionalHeaders);
    if (mUrlRewriter != null) {
        String rewritten = mUrlRewriter.rewriteUrl(url);
        if (rewritten == null) {
            throw new IOException("URL blocked by rewriter: " + url);
        }
        url = rewritten;
    }
    URL parsedUrl = new URL(url);
    HttpURLConnection connection = openConnection(parsedUrl, request);
    for (String headerName : map.keySet()) {
        connection.addRequestProperty(headerName, map.get(headerName));
    }
    setConnectionParametersForRequest(connection, request);
    // Initialize HttpResponse with data from the HttpURLConnection.
    SaveProtocolVersion saveProtocolVersion = HurlProtocolVersionAdapter.getInstance()
            .adaptiveProtocolVersion(null);
    int responseCode = connection.getResponseCode();
    if (responseCode == -1) {
        // -1 is returned by getResponseCode() if the response code could not be retrieved.
        // Signal to the caller that something was wrong with the connection.
        throw new IOException("Could not retrieve response code from HttpUrlConnection.");
    }
    SaveStatusLine responseStatus = HurlStatusLineAdapter.getInstance()
            .adaptiveStatusLine(
                    HurlProtocolVersionAdapter.getInstance(),
                    connection);
    SaveHttpResponse saveHttpResponse = new SaveHttpResponse(responseStatus);
    if (hasResponseBody(request.getMethod(), responseStatus.getStatusCode())) {
        saveHttpResponse.setEntity(
                HurlHttpEntityAdapter.getInstance().adaptiveEntity(connection));
    }
    HurlHeaderAdapter.getInstance().adaptiveHeader(saveHttpResponse, connection);
    return saveHttpResponse;
}
 
源代码17 项目: jxapi   文件: ActivityClient.java
private String issueProfilePut(String path, String data, HashMap<String, String> etag)
        throws java.io.IOException {
	URL url = new URL(this._host.getProtocol(), this._host.getHost(),this._host.getPort(), this._host.getPath()+path);
    HttpURLConnection conn = initializeConnection(url);
    conn.setRequestMethod("POST");

    // Agent Profile requires either of these headers being sent
    // If neither are sent it will set If-None-Match to null and exception
    // will be caught during request
    if (etag.containsKey("If-Match")){
        conn.addRequestProperty("If-Match", etag.get("If-Match"));
    }
    else{
        conn.addRequestProperty("If-None-Match", etag.get("If-None-Match"));
    }

    conn.setRequestMethod("PUT");
    OutputStreamWriter writer = new OutputStreamWriter(
            conn.getOutputStream());
    try {
        writer.write(data);
    } catch (IOException ex) {
        InputStream s = conn.getErrorStream();
        InputStreamReader isr = new InputStreamReader(s);
        BufferedReader br = new BufferedReader(isr);
        try {
            String line;
            while((line = br.readLine()) != null){
                System.out.print(line);
            }
            System.out.println();
        } finally {
            s.close();
        }
        throw ex;
    } finally {
        writer.close();
    }
    try {
        return readFromConnection(conn);
    } finally {
        conn.disconnect();
    }
}
 
源代码18 项目: letv   文件: NetworkUtils.java
public static void report(String url, String data) {
    Exception e;
    Throwable th;
    LogTool.i(TAG, "report. url(%s), data(%s)", url, data);
    if (!TextUtils.isEmpty(url) && !TextUtils.isEmpty(data)) {
        HttpURLConnection httpURLConnection = null;
        PrintWriter printWriter = null;
        try {
            httpURLConnection = getHttpURLConnection(url, 10, 10);
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.addRequestProperty(HttpRequest.PARAM_CHARSET, "utf-8");
            httpURLConnection.addRequestProperty("connection", Constants.PAGE_FLAG_CLOSE);
            httpURLConnection.addRequestProperty(HttpRequest.HEADER_CONTENT_TYPE, HttpRequest.CONTENT_TYPE_FORM);
            httpURLConnection.setFixedLengthStreamingMode(data.length());
            httpURLConnection.setDoOutput(true);
            PrintWriter printWriter2 = new PrintWriter(httpURLConnection.getOutputStream());
            try {
                printWriter2.write(data.toString());
                printWriter2.flush();
                if (httpURLConnection.getResponseCode() != 200) {
                    LogTool.w(TAG, "report. abnormal response code(%s), url(%s)", Integer.valueOf(httpURLConnection.getResponseCode()), url);
                }
                IOUtils.closeSilently(printWriter2);
                if (httpURLConnection != null) {
                    try {
                        httpURLConnection.disconnect();
                        printWriter = printWriter2;
                        return;
                    } catch (Throwable e2) {
                        LogTool.e(TAG, "report. " + e2.toString());
                    }
                }
                printWriter = printWriter2;
            } catch (Exception e3) {
                e = e3;
                printWriter = printWriter2;
                try {
                    LogTool.e(TAG, "report. %s, url(%s)", e.toString(), url);
                    IOUtils.closeSilently(printWriter);
                    if (httpURLConnection != null) {
                        try {
                            httpURLConnection.disconnect();
                        } catch (Throwable e22) {
                            LogTool.e(TAG, "report. " + e22.toString());
                        }
                    }
                } catch (Throwable th2) {
                    th = th2;
                    IOUtils.closeSilently(printWriter);
                    if (httpURLConnection != null) {
                        try {
                            httpURLConnection.disconnect();
                        } catch (Throwable e222) {
                            LogTool.e(TAG, "report. " + e222.toString());
                        }
                    }
                    throw th;
                }
            } catch (Throwable th3) {
                th = th3;
                printWriter = printWriter2;
                IOUtils.closeSilently(printWriter);
                if (httpURLConnection != null) {
                    httpURLConnection.disconnect();
                }
                throw th;
            }
        } catch (Exception e4) {
            e = e4;
            LogTool.e(TAG, "report. %s, url(%s)", e.toString(), url);
            IOUtils.closeSilently(printWriter);
            if (httpURLConnection != null) {
                httpURLConnection.disconnect();
            }
        }
    }
}
 
源代码19 项目: o2oa   文件: DocumentTools.java
public static byte[] toHtml(String fileName, byte[] bytes) throws Exception {

		String type = FilenameUtils.getExtension(fileName);
		if(StringUtils.isEmpty(type)){
			return null;
		}else{
			type = type.toLowerCase();
		}
		String toHtmlType = "#doc#docx#xls#xlsx#ppt#pptx";
		if(toHtmlType.indexOf(type) == -1){
			return null;
		}
		try {
			if(!Config.collect().connect()){
				return null;
			}

			URL serverUrl = new URL(Config.collect().url() + "/o2_collect_assemble/jaxrs/document/to/html");

			HttpURLConnection connection = (HttpURLConnection) serverUrl.openConnection();

			String boundary = "----" + StringTools.uniqueToken();

			connection.setRequestMethod("POST");
			connection.setDoOutput(true);
			connection.setUseCaches(false);
			connection.addRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);

			try (OutputStream out = connection.getOutputStream();
				 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out))) {
				writer.write(twoHyphens + boundary);
				writer.write(CRLF);
				writer.write("Content-Disposition: form-data; name=\"file\"; filename=\""
						+ (StringUtils.isEmpty(fileName) ? StringTools.uniqueToken() : fileName) + "\"");
				writer.write(CRLF);
				writer.write("Content-Type: " + HttpMediaType.APPLICATION_OCTET_STREAM);
				writer.write(CRLF);
				writer.write(CRLF);
				writer.flush();
				out.write(bytes);
				out.flush();
				writer.write(CRLF);
				writer.write(twoHyphens + boundary);

				writer.write(CRLF);
				writer.write("Content-Disposition: form-data; name=\"name\"");
				writer.write(CRLF);
				writer.write("Content-Type: " + HttpMediaType.TEXT_PLAIN);
				writer.write(CRLF);
				writer.write(CRLF);
				writer.write(Config.collect().getName());
				writer.write(CRLF);
				writer.write(twoHyphens + boundary);

				writer.write(CRLF);
				writer.write("Content-Disposition: form-data; name=\"password\"");
				writer.write(CRLF);
				writer.write("Content-Type: " + HttpMediaType.TEXT_PLAIN);
				writer.write(CRLF);
				writer.write(CRLF);
				writer.write(Config.collect().getPassword());
				writer.write(CRLF);
				writer.write(twoHyphens + boundary);

				writer.write(CRLF);
				writer.write("Content-Disposition: form-data; name=\"type\"");
				writer.write(CRLF);
				writer.write("Content-Type: " + HttpMediaType.TEXT_PLAIN);
				writer.write(CRLF);
				writer.write(CRLF);
				writer.write(type);
				writer.write(CRLF);
				writer.write(twoHyphens + boundary);

				writer.write(twoHyphens);
				writer.flush();
			}

			String respText = null;

			try (InputStream in = connection.getInputStream()) {
				respText = IOUtils.toString(in, DefaultCharset.charset_utf_8);
			}

			if (StringUtils.isNotEmpty(respText)) {
				ActionResponse response = XGsonBuilder.instance().fromJson(respText, ActionResponse.class);
				WrapString wrap = XGsonBuilder.instance().fromJson(response.getData(), WrapString.class);
				return Base64.decodeBase64(wrap.getValue());
			}
		} catch (Exception e) {
			logger.warn(fileName+"-转换html异常:"+e.getMessage());
			return null;
		}
		return null;
	}
 
/**
 * Generates a new auth token for a FID on the FIS Servers by calling FirebaseInstallations API
 * generateAuthToken method.
 *
 * @param apiKey API Key that has access to FIS APIs
 * @param fid Firebase Installation Identifier
 * @param projectID Project Id
 * @param refreshToken a token used to authenticate FIS requests
 *     <ul>
 *       <li>400: return response with status BAD_CONFIG
 *       <li>401: return response with status INVALID_AUTH
 *       <li>403: return response with status BAD_CONFIG
 *       <li>404: return response with status INVALID_AUTH
 *       <li>429: throw FirebaseInstallationsException
 *       <li>500: throw FirebaseInstallationsException
 *     </ul>
 */
@NonNull
public TokenResult generateAuthToken(
    @NonNull String apiKey,
    @NonNull String fid,
    @NonNull String projectID,
    @NonNull String refreshToken)
    throws FirebaseInstallationsException {
  String resourceName =
      String.format(GENERATE_AUTH_TOKEN_REQUEST_RESOURCE_NAME_FORMAT, projectID, fid);
  int retryCount = 0;
  URL url = getFullyQualifiedRequestUri(resourceName);
  while (retryCount <= MAX_RETRIES) {
    HttpURLConnection httpURLConnection = openHttpURLConnection(url, apiKey);
    try {
      httpURLConnection.setRequestMethod("POST");
      httpURLConnection.addRequestProperty("Authorization", "FIS_v2 " + refreshToken);

      writeGenerateAuthTokenRequestBodyToOutputStream(httpURLConnection);

      int httpResponseCode = httpURLConnection.getResponseCode();

      if (httpResponseCode == 200) {
        return readGenerateAuthTokenResponse(httpURLConnection);
      }

      logFisCommunicationError(httpURLConnection, null, apiKey, projectID);

      if (httpResponseCode == 401 || httpResponseCode == 404) {
        return TokenResult.builder().setResponseCode(TokenResult.ResponseCode.AUTH_ERROR).build();
      }

      if (httpResponseCode == 429 || (httpResponseCode >= 500 && httpResponseCode < 600)) {
        retryCount++;
        continue;
      }

      logBadConfigError();

      return TokenResult.builder().setResponseCode(TokenResult.ResponseCode.BAD_CONFIG).build();
    } catch (IOException ignored) {
      retryCount++;
    } finally {
      httpURLConnection.disconnect();
    }
  }
  throw new FirebaseInstallationsException(
      "Firebase Installations Service is unavailable. Please try again later.",
      Status.UNAVAILABLE);
}