定义请求头
LinkedHashMap<String,String>headers = new LinkedHashMap<String,String>()
headers.put("Content-type","text/xml")
headers.put("Cache-Control", "no-cache")
headers.put("Connection", "close")
给HttpPost 设置请求头
HttpPost httpPost = new HttpPost("http://localhost:8080/root")
if (headers != null) {
for (String key : headers.keySet()) {
httpPost.setHeader(key, headers.get(key))
}
}
备注:只需要在map中设置相应的请求头内容即可。根据实际需要修改即可
range的值当然可以在前端设置好了,然后调用后台的setHeader进行设置range的值。uriRequest. setHeader ("Range", "bytes=" + current + "-")
首先,我们先看一下http的头信息到底是什么:HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而 言,包括message-header和message-body两部分。首先传递message- header,即http header消息。http header 消息通常被分为4个部分: general header, request header, response header, entity header。但是这种分法就理解而言,感觉界限不太明确,根据日常使用,大体分为Request和Response两部分。
在通常的servlet/jsp应用中,我们只是从http的header中取得信息,如果要设置信息,需要用到HttpClient,具体的设置方法如下:
HttpResponse response = null
HttpGet get = new HttpGet(url)
get.addHeader("Accept", "text/html")
get.addHeader("Accept-Charset", "utf-8")
get.addHeader("Accept-Encoding", "gzip")
get.addHeader("Accept-Language", "en-US,en")
get.addHeader("User-Agent", "Mozilla/5.0 (X11Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22")
response = client.execute(get)
HttpEntity entity = response.getEntity()
Header header = entity.getContentEncoding()
if (header != null)
{
HeaderElement[] codecs = header.getElements()
for (int i = 0i <codecs.lengthi++)
{
if (codecs[i].getName().equalsIgnoreCase("gzip"))
{
response.setEntity(new GzipDecompressingEntity(entity))
}
}
}
return response
其中,client为一个HttpClient的实力,创建方式如:
SchemeRegistry schemeRegistry = new SchemeRegistry()
schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()))
schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()))
PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry)
cm.setMaxTotal(200)
cm.setDefaultMaxPerRoute(2)
HttpHost googleResearch = new HttpHost("research.google.com", 80)
HttpHost wikipediaEn = new HttpHost("en.wikipedia.org", 80)
cm.setMaxPerRoute(new HttpRoute(googleResearch), 30)
cm.setMaxPerRoute(new HttpRoute(wikipediaEn), 50)
DefaultHttpClient client = new DefaultHttpClient(cm)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)