HttpGet添加标题

时间:2012-11-27 01:57:53

标签: java http http-headers httpclient

我正在创建一个httpClient,我想在我的HttpGet请求中添加某些标题 我当前的代码产生以下请求。

GET /folder/index.html HTTP / 1.0
主持人:localhost:4444
连接:保持活力
User-Agent:Apache-HttpClient / 4.2.1(java 1.5)

我想要的是在该请求中添加另一个标题(If-Modified-Since) 我该怎么办? 谢谢:))

public String httpGet(String s) {
    String url = s;
    StringBuilder body = new StringBuilder();
    httpclient = new DefaultHttpClient(); // create new httpClient
    HttpGet httpGet = new HttpGet(url); // create new httpGet object



    try {
        response = httpclient.execute(httpGet); // execute httpGet
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == HttpStatus.SC_OK) {
            // System.out.println(statusLine);
            body.append(statusLine + "\n");
            HttpEntity e = response.getEntity();
            String entity = EntityUtils.toString(e);
            body.append(entity);
        } else {
            body.append(statusLine + "\n");
            // System.out.println(statusLine);
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        httpGet.releaseConnection(); // stop connection
    }
    return body.toString(); // return the String
}

2 个答案:

答案 0 :(得分:5)

在HttpGet对象上使用setHeader()方法,如下所示。

httpGet.setHeader("If-Modified-Since","11/26/2012");

我使用此JavaDoc作为参考。

答案 1 :(得分:1)

对HttpGet对象使用setHeader()方法,如下第一个

httpGet.setHeader("If-Modified-Since","11/26/2012");

然后在HttpGet对象上使用addHeader()方法,如下所示为第二个标题。

httpGet.addHeader("If-Expires-On","11/26/2014");