Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定制请求生成器Apache_Java_Apache Httpclient 4.x - Fatal编程技术网

Java 定制请求生成器Apache

Java 定制请求生成器Apache,java,apache-httpclient-4.x,Java,Apache Httpclient 4.x,我需要一个自定义请求生成器,它将返回一个实现httpentityenclosuringrequest的实例。以前我使用的RequestBuilder不符合我的目的 我之前所做的 public class SharePointRequestBuilder { //default mime type private static final String JSON_ODATA_VERBOSE_MIME_TYPE = "application/json;odata=verbose"; p

我需要一个自定义请求生成器,它将返回一个实现
httpentityenclosuringrequest
的实例。以前我使用的
RequestBuilder
不符合我的目的

我之前所做的

public class SharePointRequestBuilder {
  //default mime type
  private static final String JSON_ODATA_VERBOSE_MIME_TYPE = "application/json;odata=verbose";

  private RequestBuilder delegate;

  private SharePointRequestBuilder(RequestBuilder delegate) {
    this.delegate = delegate;
  }

  public static final SharePointRequestBuilder get(String uri)
      throws URISyntaxException {
    return new SharePointRequestBuilder(RequestBuilder.get(new URI(uri)));
  }

  public static final SharePointRequestBuilder post(String uri)
      throws URISyntaxException {
    return new SharePointRequestBuilder(RequestBuilder.post(new URI(uri)));
  }

  public final SharePointRequestBuilder setEntity(String entity, ContentType contentType) {
    delegate.setEntity(new StringEntity(entity, contentType));
    return this;
  }

  public final SharePointRequestBuilder setEntity(String entity, Charset charset) {
    delegate.setEntity(new StringEntity(entity, charset));
    return this;
  }

  public final SharePointRequestBuilder setEntity(HttpEntity entity) {
    delegate.setEntity(entity);
    return this;
  }

  public final SharePointRequestBuilder setHeader(String name, String value) {
    delegate.setHeader(name, value);
    return this;
  }

  public final SharePointRequestBuilder setHeaders(List<Header> headers) {
    headers.forEach(p-> delegate.setHeader(p));
    return this;
  }

  public final SharePointRequestBuilder withDefaultMimeType() {
    setHeader(CONTENT_TYPE, JSON_ODATA_VERBOSE_MIME_TYPE);
    setHeader(ACCEPT, JSON_ODATA_VERBOSE_MIME_TYPE);
    return this;
  }

  public final HttpUriRequest build() {
    return delegate.build();
  }
}
公共类SharePointRequestBuilder{
//默认mime类型
私有静态最终字符串JSON\u ODATA\u VERBOSE\u MIME\u TYPE=“application/JSON;ODATA=VERBOSE”;
私人委托人;
私有SharePointRequestBuilder(RequestBuilder委托){
this.delegate=委托;
}
公共静态最终SharePointRequestBuilder获取(字符串uri)
抛出URISyntaxException{
返回新的SharePointRequestBuilder(RequestBuilder.get(新URI(URI));
}
公共静态最终SharePointRequestBuilder帖子(字符串uri)
抛出URISyntaxException{
返回新的SharePointRequestBuilder(RequestBuilder.post(新URI(URI));
}
公共最终SharePointRequestBuilder setEntity(字符串实体,ContentType ContentType){
setEntity(新的StringEntity(entity,contentType));
归还这个;
}
公共最终SharePointRequestBuilder集合实体(字符串实体,字符集字符集){
delegate.setEntity(新的StringEntity(entity,charset));
归还这个;
}
公共最终SharePointRequestBuilder集合实体(HttpEntity){
委托人。集合实体(实体);
归还这个;
}
公共最终SharePointRequestBuilder setHeader(字符串名称、字符串值){
setHeader(名称、值);
归还这个;
}
公共最终SharePointRequestBuilder集头(列表头){
headers.forEach(p->delegate.setHeader(p));
归还这个;
}
带有DefaultMimeType()的公共最终SharePointRequestBuilder{
setHeader(内容类型、JSON类型、ODATA类型、详细类型、MIME类型);
setHeader(接受,JSON\u ODATA\u详细\u MIME\u类型);
归还这个;
}
公共最终HttpUriRequest构建(){
返回delegate.build();
}
}
当我调用
build()
方法时,我希望得到一个实现
HttpEntityEnclosingRequest
的实例,而不是
HttpUriRequest
。有没有办法自定义
build()
方法


请帮忙。

代码在哪里?@Ashasrivastava我已经编辑过了。