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我已经编辑过了。