如何在HttpClient的请求中添加,设置和获取Header?

在我的应用程序中,我需要在请求中设置标题,我需要在控制台中打印标题值…所以请举例说明HttpClient或在我的代码中编辑它…

我的代码是,

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class SimpleHttpPut { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://http://localhost:8089/CustomerChatSwing/JoinAction"); try { List nameValuePairs = new ArrayList(1); nameValuePairs.add(new BasicNameValuePair("userId", "123456789")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } 

提前致谢…

您可以使用HttpPost,有方法将Header添加到Request。

 DefaultHttpClient httpclient = new DefaultHttpClient(); String url = "http://localhost"; HttpPost httpPost = new HttpPost(url); httpPost.addHeader("header-name" , "header-value"); HttpResponse response = httpclient.execute(httpPost); 

在apache页面上: http : //hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html

你有这样的事情:

 URIBuilder builder = new URIBuilder(); builder.setScheme("http").setHost("www.google.com").setPath("/search") .setParameter("q", "httpclient") .setParameter("btnG", "Google Search") .setParameter("aq", "f") .setParameter("oq", ""); URI uri = builder.build(); HttpGet httpget = new HttpGet(uri); System.out.println(httpget.getURI()); 

您可以使用公共GitHub API完全测试此代码(不要超过请求限制):

 public class App { public static void main(String[] args) throws IOException { CloseableHttpClient client = HttpClients.custom().build(); // (1) Use the new Builder API (from v4.3) HttpUriRequest request = RequestBuilder.get() .setUri("https://api.github.com") // (2) Use the included enum .setHeader(HttpHeaders.CONTENT_TYPE, "application/json") // (3) Or your own .setHeader("Your own very special header", "value") .build(); CloseableHttpResponse response = client.execute(request); // (4) How to read all headers with Java8 List
httpHeaders = Arrays.asList(response.getAllHeaders()); httpHeaders.stream().forEach(System.out::println); // close client and response } }