javahttp頭
⑴ java寫的發送http頭的程序
看得我很是糾結
你這是socket連接還是http連接呀?
建議使用httpClient
⑵ 怎麼用Java語言構造http頭 調用什麼API函數 最好能舉例來說明 比如說 我要連接WebQQ伺服器來獲取驗證碼,
構造HTTP請求頭?不是很懂樓主的意思。是想實現瀏覽器和伺服器的通信么?B/S模式,是一種請求/響應交互模式。請求也就是樓主所說的HTTP請求頭。通過JAVA網路編程中的SCOKET機制可以加以實現。不過就JAVA而言,其長處在這方面不行。畢竟是高級語言,在運行速度上無法與C/C++等較底層的高級語言相比的。
⑶ java在寫http的post請求時什麼時候需要寫請求頭
實現思路就是先定義請求頭內容,之後進行請求頭設置。
定義請求頭
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 設置請求頭
if (headers != null) {
for (String key : headers.keySet()) {
httpPost.setHeader(key, headers.get(key));
}
}
⑷ java如何取得http自定義的頭部信息
把http自定義的頭部信息放入到session中,在http的整個生命周期中,session是一直存在的,在後邊需要的時候可以從session中取出來。
⑸ java http 包頭的問題
如下
Content-Length:
response.setHeader("Content-Length","1024");
Content-Type:
response.setContentType("application/x-download;charset=UTF-8");
希望對你有用!
⑹ 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()));
cm = new (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);
⑺ 怎麼用java寫一個http介面
一個servlet介面就可以了啊:
HTTP Header 請求實例
下面的實例使用 HttpServletRequest 的getHeaderNames()方法讀取 HTTP 頭信息。該方法返回一個枚舉,包含與當前的 HTTP 請求相關的頭信息。
一旦我們有一個枚舉,我們可以以標准方式循環枚舉,使用hasMoreElements()方法來確定何時停止,使用nextElement()方法來獲取每個參數的名稱。
//導入必需的java庫
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.Enumeration;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@WebServlet("/DisplayHeader")
//擴展HttpServlet類
{
//處理GET方法請求的方法
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
//設置響應內容類型
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
Stringtitle="HTTPHeader請求實例-菜鳥教程實例";
StringdocType=
"<!DOCTYPEhtml> ";
out.println(docType+
"<html> "+
"<head><metacharset="utf-8"><title>"+title+"</title></head> "+
"<bodybgcolor="#f0f0f0"> "+
"<h1align="center">"+title+"</h1> "+
"<tablewidth="100%"border="1"align="center"> "+
"<trbgcolor="#949494"> "+
"<th>Header名稱</th><th>Header值</th> "+
"</tr> ");
EnumerationheaderNames=request.getHeaderNames();
while(headerNames.hasMoreElements()){
StringparamName=(String)headerNames.nextElement();
out.print("<tr><td>"+paramName+"</td> ");
StringparamValue=request.getHeader(paramName);
out.println("<td>"+paramValue+"</td></tr> ");
}
out.println("</table> </body></html>");
}
//處理POST方法請求的方法
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doGet(request,response);
}
}
⑻ java:有沒有辦法改變接收HTTP響應頭
Respon se自己寫相應頭,按說中間件都給補充好了,想咋搞就咋搞
⑼ java 怎麼手動編寫http請求頭
實現思路就是先定義請求頭內容,之後進行請求頭設置。
定義請求頭
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中設置相應的請求頭內容即可。根據實際需要修改即可