java HttpGet 添加标头

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13576294/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 13:16:23  来源:igfitidea点击:

HttpGet adding header

javahttphttp-headershttpclient

提问by Ken

I am creating a httpClient and I want to add certain header to my HttpGet request
My current code produces the following request.

我正在创建一个 httpClient 并且我想向我的 HttpGet 请求添加某些标头
我当前的代码产生以下请求。

GET /folder/index.html HTTP/1.0
Host: localhost:4444
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.1 (java 1.5)

GET /folder/index.html HTTP/1.0
Host: localhost:4444
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.1 (java 1.5)

What I want is to add another header (If-Modified-Since) in that request .
How can I do it?
Thank you :)

我想要的是在该请求中添加另一个标头(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
}

回答by hall.stephenk

Use the setHeader() method on the HttpGet object like follows.

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

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

I used this JavaDocas a reference.

我使用这个JavaDoc作为参考。

回答by Carl-

Use the setHeader() method on the HttpGet object like follows for the first one

在 HttpGet 对象上使用 setHeader() 方法,如下所示用于第一个

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

and then use addHeader() method on the HttpGet object like as follows for the second header.

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

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