2017-02-08 24 views
1

我正在使用import org.apache.http.client.methods.HttpPut和HttpGet来构建我的put和get请求的标头。很多要在这些方法中添加的头文件都是相同的,我想避免在put和get函数中编写相同的代码。有没有一种方法可以接受HttpPut或HttpGet对象作为参数,并且可以添加标题?例如:如何编写接受不同对象类型但在Java中执行相同操作的函数

HttpGet get= new HttpGet(url); 
get = addHeaders(get); 
get.setHeader();//custom headers for get requests 

HttpPut put = new HttpPut(url); 
put = addHeaders(put); 

Object addHeaders(Object x) { 
    x.setHeader();//add the common headers 
    return x; 
} 

这样做的最好方法是什么?

+0

有没有理由不使用'AbstractHttpMessage'? – chrylis

回答

4

两个HttpGetHttpPost具有实现HttpMessage接口包含的方法setHeader()所以

public void setHeader(HttpMessage msg){ 
     msg.setHeader("xxxx"); 
} 

会做的伎俩。

+0

我们不需要返回味精? – user1692342

+0

返回在你的例子中是没有意义的 –

+0

同意,* interface * HttpMessage是使用的正确类型,因为它清楚地定义了你需要的接口。超类是实现细节。 –

3

HttpMessageHttpGetHttpPut的母公司。

试试这个

HttpMessage addHeaders(HttpMessage x) { 
    x.setHeader();//add the common headers 
    return x; 
} 
+3

'AbstractHttpMessage'可能是最好的父类。 – chrylis

+2

对接口而不是类可能会更好。 –

相关问题