response.addheader,c# CurrentContext.Response.AddHeader(param1,param2);
本篇文章给大家谈谈response.addheader,以及c# CurrentContext.Response.AddHeader(param1,param2);对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
java怎么从response获取header
首先,我们先看一下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(X11; Linux 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= 0; i< codecs.length; i++)
{
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);
怎么设置一个http头让 request.getheader获取到值
首先,我们先看一下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(X11; Linux 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= 0; i< codecs.length; i++)
{
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);
c# CurrentContext.Response.AddHeader(param1,param2);
AddHeader()是明确告诉浏览器,下一步处理的指示,比如这是一个下载文件,是打开还是下载,有多少长度,什么格式。
在服务器端可以多次添加header,header的处理,应该在内容数据发送之前(写入文件字节流之前)
通过Response.Flush() or End()方法可以将标头发送到客户端。未发送之前,如果是缓存模式,add不会立即发送出去,可以clear()
下面是一个示例
//添加Http头
HttpContext.Current.Response.ContentType="application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition","attachement;filename="+ Server.UrlEncode(info.FullName));
HttpContext.Current.Response.AddHeader("Content-Length", dataToRead.ToString());
while(dataToRead> 0)
{
if(HttpContext.Current.Response.IsClientConnected)
{
int length= stream.Read(buffer, 0, Convert.ToInt32(chunkSize));
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Clear();
dataToRead-= length;
}
else
{
//防止client失去连接
dataToRead=-1;
}
}
java中如何设置HTTP协议的头信息(header)
首先,我们先看一下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(X11; Linux 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= 0; i< codecs.length; i++)
{
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);
response.addheader和c# CurrentContext.Response.AddHeader(param1,param2);的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!