Java Code Examples for org.apache.http.client.methods.CloseableHttpResponse#getFirstHeader()

The following examples show how to use org.apache.http.client.methods.CloseableHttpResponse#getFirstHeader() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CommonHttpResourceDownloader.java    From scheduling with GNU Affero General Public License v3.0 6 votes vote down vote up
public UrlContent getResourceContent(String sessionId, String url, boolean insecure) throws IOException {

        CommonHttpClientBuilder builder = new CommonHttpClientBuilder().maxConnections(CONNECTION_POOL_SIZE)
                                                                       .useSystemProperties()
                                                                       .insecure(insecure);
        try (CloseableHttpClient client = builder.build()) {
            CloseableHttpResponse response = createAndExecuteRequest(sessionId, url, client);

            Header contentDispositionHeader = response.getFirstHeader("Content-Disposition");
            String filename;
            if (contentDispositionHeader != null &&
                contentDispositionHeader.getValue().matches(CONTENT_DISPOSITIOB_REGEXP)) {
                filename = contentDispositionHeader.getValue().replaceFirst(CONTENT_DISPOSITIOB_REGEXP, "$1");
            } else {
                filename = FileUtils.getFileNameWithExtension(new URL(url));
            }
            return new UrlContent(readContent(response.getEntity().getContent()), filename);
        }
    }
 
Example 2
Source File: FileDownloadServletTest.java    From selenium-grid-extensions with Apache License 2.0 6 votes vote down vote up
@Test
public void getShouldReturnFileContentsWithNameInHeader() throws IOException {
    File fileToGet = File.createTempFile("test filename with spaces", ".txt");
    FileUtils.write(fileToGet, "expected_content", StandardCharsets.UTF_8);

    CloseableHttpClient httpClient = HttpClients.createDefault();

    String encode = Base64.getUrlEncoder().encodeToString(fileToGet.getAbsolutePath().getBytes(StandardCharsets.UTF_8));
    HttpGet httpGet = new HttpGet("/FileDownloadServlet/" + encode);

    CloseableHttpResponse execute = httpClient.execute(serverHost, httpGet);

    //check contents are properly sent
    try (
            InputStream content = execute.getEntity().getContent()) {
        String s = IOUtils.toString(content, StandardCharsets.UTF_8);
        assertThat(s, is("expected_content"));
    }

    //check file name is available from header
    Header contentDispositionHeader = execute.getFirstHeader(HttpHeaders.CONTENT_DISPOSITION);
    assertThat(contentDispositionHeader.getValue(), containsString("filename=" + fileToGet.getName()));
    //check file is not locked by anything
    assertTrue(fileToGet.delete());
}
 
Example 3
Source File: RestMessageContext.java    From activemq-artemis with Apache License 2.0 6 votes vote down vote up
public int postMessage(String content, String type) throws IOException {
   String postUri;
   String nextMsgUri = contextMap.get(KEY_MSG_CREATE_NEXT);
   if (nextMsgUri == null) {
      postUri = contextMap.get(KEY_MSG_CREATE);
   } else {
      postUri = nextMsgUri;
   }
   CloseableHttpResponse response = connection.post(postUri, type, content);
   int code = -1;
   try {
      code = ResponseUtil.getHttpCode(response);
      // check redirection
      if (code == 307) {
         Header redirLoc = response.getFirstHeader("Location");
         contextMap.put(KEY_MSG_CREATE_NEXT, redirLoc.getValue());
         code = postMessage(content, type);// do it again.
      } else if (code == 201) {
         Header header = response.getFirstHeader(KEY_MSG_CREATE_NEXT);
         contextMap.put(KEY_MSG_CREATE_NEXT, header.getValue());
      }
   } finally {
      response.close();
   }
   return code;
}
 
Example 4
Source File: JAXRSClientServerNonSpringBookTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
private void getAndCompare(String address,
                           String expectedValue,
                           String acceptType,
                           String expectedContentType,
                           int expectedStatus) throws Exception {
    CloseableHttpClient client = HttpClientBuilder.create().build();
    HttpGet get = new HttpGet(address);
    get.setHeader("Accept", acceptType);
    get.setHeader("Accept-Language", "da;q=0.8,en");
    get.setHeader("Book", "1,2,3");
    try {
        CloseableHttpResponse response = client.execute(get);
        assertEquals(expectedStatus, response.getStatusLine().getStatusCode());
        String content = EntityUtils.toString(response.getEntity());
        assertEquals("Expected value is wrong",
                     stripXmlInstructionIfNeeded(expectedValue), stripXmlInstructionIfNeeded(content));
        if (expectedContentType != null) {
            Header ct = response.getFirstHeader("Content-Type");
            assertEquals("Wrong type of response", expectedContentType, ct.getValue());
        }
    } finally {
        get.releaseConnection();
    }
}
 
Example 5
Source File: CommonService.java    From WeEvent with Apache License 2.0 5 votes vote down vote up
public void writeResponse(CloseableHttpResponse closeResponse, HttpServletResponse res) throws IOException {
    String mes = EntityUtils.toString(closeResponse.getEntity());
    log.info("response: " + mes);
    Header encode = closeResponse.getFirstHeader(CONTENT_TYPE);
    res.setHeader(encode.getName(), encode.getValue());
    ServletOutputStream out = res.getOutputStream();
    out.write(mes.getBytes());
}
 
Example 6
Source File: WechatPay2Validator.java    From wechatpay-apache-httpclient with Apache License 2.0 5 votes vote down vote up
protected final void validateParameters(CloseableHttpResponse response) {
  String requestId;
  if (!response.containsHeader("Request-ID")) {
    throw parameterError("empty Request-ID");
  } else {
    requestId = response.getFirstHeader("Request-ID").getValue();
  }

  if (!response.containsHeader("Wechatpay-Serial")) {
    throw parameterError("empty Wechatpay-Serial, request-id=[%s]", requestId);
  } else if (!response.containsHeader("Wechatpay-Signature")){
    throw parameterError("empty Wechatpay-Signature, request-id=[%s]", requestId);
  } else if (!response.containsHeader("Wechatpay-Timestamp")) {
    throw parameterError("empty Wechatpay-Timestamp, request-id=[%s]", requestId);
  } else if (!response.containsHeader("Wechatpay-Nonce")) {
    throw parameterError("empty Wechatpay-Nonce, request-id=[%s]", requestId);
  } else {
    Header timestamp = response.getFirstHeader("Wechatpay-Timestamp");
    try {
      Instant instant = Instant.ofEpochSecond(Long.parseLong(timestamp.getValue()));
      // 拒绝5分钟之外的应答
      if (Duration.between(instant, Instant.now()).abs().toMinutes() >= 5) {
        throw parameterError("timestamp=[%s] expires, request-id=[%s]",
            timestamp.getValue(), requestId);
      }
    } catch (DateTimeException | NumberFormatException e) {
      throw parameterError("invalid timestamp=[%s], request-id=[%s]",
          timestamp.getValue(), requestId);
    }
  }
}
 
Example 7
Source File: QueueRestMessageContext.java    From activemq-artemis with Apache License 2.0 5 votes vote down vote up
@Override
public void initPullConsumers() throws IOException {
   String pullUri = getPullConsumerUri();
   CloseableHttpResponse response = null;
   if (!this.autoAck) {
      response = connection.post(pullUri, "application/x-www-form-urlencoded", "autoAck=false");
   } else {
      response = connection.post(pullUri);
   }

   try {
      int code = ResponseUtil.getHttpCode(response);
      if (code == 201) {
         Header header = response.getFirstHeader("Location");
         contextMap.put(KEY_PULL_CONSUMERS_LOC, header.getValue());
         header = response.getFirstHeader(KEY_MSG_CONSUME_NEXT);
         contextMap.put(KEY_MSG_CONSUME_NEXT, header.getValue());
         header = response.getFirstHeader(KEY_MSG_ACK_NEXT);
         if (header != null) {
            contextMap.put(KEY_MSG_ACK_NEXT, header.getValue());
         }
      }
   } finally {
      response.close();
   }

}
 
Example 8
Source File: RestMessageContext.java    From activemq-artemis with Apache License 2.0 5 votes vote down vote up
private void prepareSelf() throws IOException {
   String destLink = getDestLink();
   CloseableHttpResponse response = connection.request(destLink);
   int code = ResponseUtil.getHttpCode(response);
   if (code != 200) {
      System.out.println("failed to init " + destLink);
      System.out.println("reason: " + ResponseUtil.getDetails(response));
   }
   try {
      Header header = response.getFirstHeader(KEY_MSG_CREATE);
      contextMap.put(KEY_MSG_CREATE, header.getValue());
      header = response.getFirstHeader(KEY_MSG_CREATE_ID);
      contextMap.put(KEY_MSG_CREATE_ID, header.getValue());

      header = response.getFirstHeader(KEY_MSG_PULL);
      if (header != null) {
         contextMap.put(KEY_MSG_PULL, header.getValue());
      }
      header = response.getFirstHeader(KEY_MSG_PUSH);
      if (header != null) {
         contextMap.put(KEY_MSG_PUSH, header.getValue());
      }
      header = response.getFirstHeader(KEY_MSG_PULL_SUB);
      if (header != null) {
         contextMap.put(KEY_MSG_PULL_SUB, header.getValue());
      }
      header = response.getFirstHeader(KEY_MSG_PUSH_SUB);
      if (header != null) {
         contextMap.put(KEY_MSG_PUSH_SUB, header.getValue());
      }
   } finally {
      response.close();
   }
}
 
Example 9
Source File: TopicRestMessageContext.java    From activemq-artemis with Apache License 2.0 5 votes vote down vote up
@Override
public void initPullConsumers() throws IOException {
   String pullUri = getPullConsumerUri();
   CloseableHttpResponse response = null;
   if (this.durableSub || !this.autoAck) {
      String extraOpt = "durable=" + this.durableSub + "&autoAck=" + this.autoAck;
      response = connection.post(pullUri, "application/x-www-form-urlencoded", extraOpt);
   } else {
      response = connection.post(pullUri);
   }

   int code = ResponseUtil.getHttpCode(response);

   try {
      if (code == 201) {
         Header header = response.getFirstHeader("Location");
         contextMap.put(KEY_PULL_CONSUMERS_LOC, header.getValue());
         header = response.getFirstHeader(KEY_MSG_CONSUME_NEXT);
         contextMap.put(KEY_MSG_CONSUME_NEXT, header.getValue());
         header = response.getFirstHeader(KEY_MSG_ACK_NEXT);
         if (header != null) {
            contextMap.put(KEY_MSG_ACK_NEXT, header.getValue());
         }
      } else {
         throw new IllegalStateException("Failed to init pull consumer " + ResponseUtil.getDetails(response));
      }
   } finally {
      response.close();
   }
}
 
Example 10
Source File: JAXRSClientServerBookTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
private void getAndCompare(String address,
                           String expectedValue,
                           String acceptType,
                           String expectedContentType,
                           int expectedStatus) throws Exception {
    CloseableHttpClient client = HttpClientBuilder.create().build();
    HttpGet get = new HttpGet(address);
    get.addHeader("Accept", acceptType);
    get.addHeader("Cookie", "a=b;c=d");
    get.addHeader("Cookie", "e=f");
    get.addHeader("Accept-Language", "da;q=0.8,en");
    get.addHeader("Book", "1,2,3");

    try {
        CloseableHttpResponse response = client.execute(get);
        assertEquals(expectedStatus, response.getStatusLine().getStatusCode());
        String content = EntityUtils.toString(response.getEntity());
        assertEquals("Expected value is wrong",
                     stripXmlInstructionIfNeeded(expectedValue), stripXmlInstructionIfNeeded(content));
        if (expectedStatus == 200) {
            assertEquals("123", response.getFirstHeader("BookId").getValue());
            assertNotNull(response.getFirstHeader("Date"));
        }
        if (expectedStatus == 405) {
            assertNotNull(response.getFirstHeader("Allow"));
        }
        if (expectedContentType != null) {
            Header ct = response.getFirstHeader("Content-Type");
            assertEquals("Wrong type of response", expectedContentType, ct.getValue());
        }
    } finally {
        get.releaseConnection();
    }
}
 
Example 11
Source File: AgentUpgradeService.java    From gocd with Apache License 2.0 5 votes vote down vote up
private void validateMd5(String currentMd5, CloseableHttpResponse response, String agentContentMd5Header, String what) {
    final Header md5Header = response.getFirstHeader(agentContentMd5Header);
    LOGGER.debug("[Agent Upgrade Validate MD5] validating MD5 for {}, currentMD5:{}, responseMD5:{}, headerKey:{}", what, currentMd5, md5Header, agentContentMd5Header);
    if (md5Header == null) {
        LOGGER.debug("[Agent Upgrade Validate MD5] Did not find {} MD5 header in response {}.", agentContentMd5Header, response);
    }
    if (!"".equals(currentMd5)) {
        if (!currentMd5.equals(md5Header.getValue())) {
            jvmExitter.jvmExit(what, currentMd5, md5Header.getValue());
        }
    }
}
 
Example 12
Source File: UnionService.java    From seezoon-framework-all with Apache License 2.0 4 votes vote down vote up
@Test
public void payPage() throws ParseException, Exception {
	String mobile = "13249073372";
	String email= "[email protected]";
	String phoneVerifyCode="874501";
	CookieStore cookieStore = valueOperations.get(mobile);
	HttpClientContext httpClientContext = HttpClientContext.create();
	httpClientContext.setCookieStore(cookieStore);
	String url = UriComponentsBuilder.fromHttpUrl("https://upay.10010.com/npfweb/NpfWeb/buyCard/buyCardSubmit").build().toUriString();
	HttpPost request = new HttpPost(url);
	Map<String, String> params = new HashMap<String,String>();
	params.put("cardBean.cardValueCode", "04");
	params.put("offerPriceStrHidden", "100.00");
	params.put("offerRateStrHidden", "1");
	params.put("cardBean.cardValue", "100");
	params.put("cardBean.minCardNum", "1");
	params.put("cardBean.maxCardNum", "3");
	params.put("MaxThreshold01", "15");
	params.put("MinThreshold01", "1");
	params.put("MaxThreshold02", "10");
	params.put("MinThreshold02", "1");
	params.put("MaxThreshold03", "6");
	params.put("MinThreshold03", "1");
	params.put("MaxThreshold04", "3");
	params.put("MinThreshold04", "1");
	params.put("commonBean.channelType", "101");
	//params.put("secstate.state", IOUtils.toString(new FileReader("/Users/hdf/Desktop/1.txt")));
	params.put("secstate.state", "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^@^0.0.1");
	params.put("cardBean.buyCardAmount", "1");
	params.put("cardBean.buyCardEmail", email);
	params.put("cardBean.buyCardPhoneNo", mobile);
	params.put("phoneVerifyCode",phoneVerifyCode);
	params.put("invoiceBean.need_invoice", "	0");
	params.put("invoiceBean.invoice_type	", "");
	params.put("invoiceBean.is_mailing", "0");
	params.put("saveflag	", "false");
	params.put("commonBean.provinceCode", "");
	params.put("commonBean.cityCode", "");
	params.put("invoiceBean.invoice_list	", "");
	request.setEntity(getUrlEncodedFormEntity(params));
	request.setHeader("Referer", "https://upay.10010.com/npfweb/npfbuycardweb/buycard_recharge_fill.htm");
	request.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36");
	CloseableHttpResponse response = client.execute(request, httpClientContext);
	System.out.println("response:" + JSON.toJSONString(response));
	if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {// 成功
		HttpEntity entity = response.getEntity();
		if (null != entity) {
			String result = EntityUtils.toString(entity, "UTF-8");
			EntityUtils.consume(entity);
			System.out.println("result" + result);
		} else {
			throw new ServiceException("请求无数据返回");
		}
	} else if (response.getStatusLine().getStatusCode() == 302) {
		Header header = response.getFirstHeader("location"); // 跳转的目标地址是在 HTTP-HEAD 中的
		String newuri = header.getValue(); // 这就是跳转后的地址,再向这个地址发出新申请,以便得到跳转后的信息是啥。
		System.out.println("redirect url:" + newuri);
		HttpGet redirectRequest = new HttpGet(newuri);
		CloseableHttpResponse response2 = client.execute(redirectRequest, httpClientContext);
		System.out.println("response2:" + JSON.toJSONString(response2));
	} else {
		throw new ServiceException("请求状态异常失败");
	}
}
 
Example 13
Source File: HttpClientLoginLogoutPerfTest.java    From keycloak with Apache License 2.0 4 votes vote down vote up
public String getRedirectLocation(CloseableHttpResponse r) {
    Header locationHeader = r.getFirstHeader("Location");
    assertNotNull(locationHeader);
    return locationHeader.getValue();
}
 
Example 14
Source File: HttpGetter.java    From commafeed with Apache License 2.0 4 votes vote down vote up
/**
 * 
 * @param url
 *            the url to retrive
 * @param lastModified
 *            header we got last time we queried that url, or null
 * @param eTag
 *            header we got last time we queried that url, or null
 * @return
 * @throws ClientProtocolException
 * @throws IOException
 * @throws NotModifiedException
 *             if the url hasn't changed since we asked for it last time
 */
public HttpResult getBinary(String url, String lastModified, String eTag, int timeout) throws ClientProtocolException, IOException,
		NotModifiedException {
	HttpResult result = null;
	long start = System.currentTimeMillis();

	CloseableHttpClient client = newClient(timeout);
	CloseableHttpResponse response = null;
	try {
		HttpGet httpget = new HttpGet(url);
		HttpClientContext context = HttpClientContext.create();

		httpget.addHeader(HttpHeaders.ACCEPT_LANGUAGE, ACCEPT_LANGUAGE);
		httpget.addHeader(HttpHeaders.PRAGMA, PRAGMA_NO_CACHE);
		httpget.addHeader(HttpHeaders.CACHE_CONTROL, CACHE_CONTROL_NO_CACHE);
		httpget.addHeader(HttpHeaders.USER_AGENT, userAgent);

		if (lastModified != null) {
			httpget.addHeader(HttpHeaders.IF_MODIFIED_SINCE, lastModified);
		}
		if (eTag != null) {
			httpget.addHeader(HttpHeaders.IF_NONE_MATCH, eTag);
		}

		try {
			response = client.execute(httpget, context);
			int code = response.getStatusLine().getStatusCode();
			if (code == HttpStatus.SC_NOT_MODIFIED) {
				throw new NotModifiedException("'304 - not modified' http code received");
			} else if (code >= 300) {
				throw new HttpResponseException(code, "Server returned HTTP error code " + code);
			}

		} catch (HttpResponseException e) {
			if (e.getStatusCode() == HttpStatus.SC_NOT_MODIFIED) {
				throw new NotModifiedException("'304 - not modified' http code received");
			} else {
				throw e;
			}
		}
		Header lastModifiedHeader = response.getFirstHeader(HttpHeaders.LAST_MODIFIED);
		String lastModifiedHeaderValue = lastModifiedHeader == null ? null : StringUtils.trimToNull(lastModifiedHeader.getValue());
		if (lastModifiedHeaderValue != null && StringUtils.equals(lastModified, lastModifiedHeaderValue)) {
			throw new NotModifiedException("lastModifiedHeader is the same");
		}

		Header eTagHeader = response.getFirstHeader(HttpHeaders.ETAG);
		String eTagHeaderValue = eTagHeader == null ? null : StringUtils.trimToNull(eTagHeader.getValue());
		if (eTag != null && StringUtils.equals(eTag, eTagHeaderValue)) {
			throw new NotModifiedException("eTagHeader is the same");
		}

		HttpEntity entity = response.getEntity();
		byte[] content = null;
		String contentType = null;
		if (entity != null) {
			content = EntityUtils.toByteArray(entity);
			if (entity.getContentType() != null) {
				contentType = entity.getContentType().getValue();
			}
		}

		String urlAfterRedirect = url;
		if (context.getRequest() instanceof HttpUriRequest) {
			HttpUriRequest req = (HttpUriRequest) context.getRequest();
			HttpHost host = context.getTargetHost();
			urlAfterRedirect = req.getURI().isAbsolute() ? req.getURI().toString() : host.toURI() + req.getURI();
		}

		long duration = System.currentTimeMillis() - start;
		result = new HttpResult(content, contentType, lastModifiedHeaderValue, eTagHeaderValue, duration, urlAfterRedirect);
	} finally {
		IOUtils.closeQuietly(response);
		IOUtils.closeQuietly(client);
	}
	return result;
}