org.apache.http.client.methods.HttpEntityEnclosingRequestBase#getEntity()源码实例Demo

下面列出了org.apache.http.client.methods.HttpEntityEnclosingRequestBase#getEntity() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: tds   文件: TestReify.java
static protected void reportRequest(RequestConfig cfg, HttpRequestBase req) {
  System.err.println("========= TestSide =========\n");
  System.err.println("Headers:\n");
  for (Header h : req.getAllHeaders()) {
    System.err.printf("\t%s = %s%n", h.getName(), h.getValue());
  }
  if ("post".equalsIgnoreCase(req.getMethod())) {
    HttpEntityEnclosingRequestBase b = (HttpEntityEnclosingRequestBase) req;
    HttpEntity he = b.getEntity();
    List<NameValuePair> content = null;
    try {
      String s = EntityUtils.toString(he);
      System.err.println(s);
    } catch (IOException e) {
      return;
    }
  }
  System.err.println("=========\n");
  System.err.flush();
}
 
public void sign(HttpRequestBase req) throws IOException {
  String payload = null;
  Charset charset = Charset.defaultCharset();
  if (HttpEntityEnclosingRequestBase.class.isAssignableFrom(req.getClass())) {
    HttpEntityEnclosingRequestBase requestBase = (HttpEntityEnclosingRequestBase) req;
    HttpEntity entity = requestBase.getEntity();
    if (entity.getContentLength() > 0) {
      if (!entity.isRepeatable()) {
        throw new IOException(
            "The signer needs to read the request payload but the input stream of this request cannot be read multiple times. Please provide the payload using a separate argument or ensure that the entity is repeatable.");
      }
      ContentType contentType = ContentType.get(entity);
      charset = contentType.getCharset();
      payload = EntityUtils.toString(entity, contentType.getCharset());
    }
  }

  String authHeader = OAuth.getAuthorizationHeader(req.getURI(), req.getMethod(), payload, charset, consumerKey, signingKey);
  req.setHeader(OAuth.AUTHORIZATION_HEADER_NAME, authHeader);
}
 
protected void doHandle(String uriId,HttpUriRequest request,Object result){
	if(this.isError(result)){
		String content = null;
		if(request instanceof HttpEntityEnclosingRequestBase){
			HttpEntityEnclosingRequestBase request_base = (HttpEntityEnclosingRequestBase)request;
			HttpEntity entity = request_base.getEntity();
			//MULTIPART_FORM_DATA 请求类型判断
			if(entity.getContentType().toString().indexOf(ContentType.MULTIPART_FORM_DATA.getMimeType()) == -1){
				try {
					content = EntityUtils.toString(entity);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			if(logger.isErrorEnabled()){
				logger.error("URI[{}] {} Content:{} Result:{}",
						uriId,
						request.getURI(),
						content == null ? "multipart_form_data" : content,
						result == null? null : JsonUtil.toJSONString(result));
			}
		}
		this.handle(uriId,request.getURI().toString(),content,result);
	}
}
 
/**
 * 日志记录
 * @param request request
 * @return log request id
 */
private static String loggerRequest(HttpUriRequest request){
	String id = UUID.randomUUID().toString();
	if(logger.isInfoEnabled()||logger.isDebugEnabled()){
		if(request instanceof HttpEntityEnclosingRequestBase){
			HttpEntityEnclosingRequestBase request_base = (HttpEntityEnclosingRequestBase)request;
			HttpEntity entity = request_base.getEntity();
			String content = null;
			//MULTIPART_FORM_DATA 请求类型判断
			if(entity.getContentType().toString().indexOf(ContentType.MULTIPART_FORM_DATA.getMimeType()) == -1){
				try {
					content = EntityUtils.toString(entity);
				} catch (Exception e) {
					e.printStackTrace();
					logger.error(e.getMessage());
				}
			}
			logger.info("URI[{}] {} {} ContentLength:{} Content:{}",
		    id,
			request.getURI().toString(),
			entity.getContentType(),
			entity.getContentLength(),
			content == null?"multipart_form_data":content);
		}else{
			logger.info("URI[{}] {}",id,request.getURI().toString());
		}
	}
	return id;
}