『壹』 java什麼是響應信息
響應信息,是指http請求響應吧,向網站伺服器發送一個請求 ,伺服器回返回一個響應,這個響應信息就是伺服器返回的,比如你訪問網站,網站返回一個404,那就說明這個頁面不存在,望採納
『貳』 java 怎樣響應post請求
Http請求類
package wzh.Http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
/**
* 向指定URL發送GET方法的請求
*
* @param url
* 發送請求的URL
* @param param
* 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
* @return URL 所代表遠程資源的響應結果
*/
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打開和URL之間的連接
URLConnection connection = realUrl.openConnection();
// 設置通用的請求屬性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立實際的連接
connection.connect();
// 獲取所有響應頭欄位
Map<String, List<String>> map = connection.getHeaderFields();
// 遍歷所有的響應頭欄位
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定義 BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("發送GET請求出現異常!" + e);
e.printStackTrace();
}
// 使用finally塊來關閉輸入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/**
* 向指定 URL 發送POST方法的請求
*
* @param url
* 發送請求的 URL
* @param param
* 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
* @return 所代表遠程資源的響應結果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打開和URL之間的連接
URLConnection conn = realUrl.openConnection();
// 設置通用的請求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 發送POST請求必須設置如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
// 獲取URLConnection對象對應的輸出流
out = new PrintWriter(conn.getOutputStream());
// 發送請求參數
out.print(param);
// flush輸出流的緩沖
out.flush();
// 定義BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("發送 POST 請求出現異常!"+e);
e.printStackTrace();
}
//使用finally塊來關閉輸出流、輸入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
}
調用方法:
public static void main(String[] args) {
//發送 GET 請求
String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
System.out.println(s);
//發送 POST 請求
String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
System.out.println(sr);
}
『叄』 java中如何判斷發送的請求是否得到響應
前面提到,伺服器在完成請求之後會在 XMLHttpRequest 的 onreadystatechange 屬性中查找要調用的方法。這是真的,但還不完整。事實上,每當 HTTP 就緒狀態改變時它都會調用該方法。這意味著什麼呢?首先必須理解 HTTP 就緒狀態。
HTTP 就緒狀態表示請求的狀態或情形。它用於確定該請求是否已經開始、是否得到了響應或者請求/響應模型是否已經完成。它還可以幫助確定讀取伺服器提供的響應文本或數據是否安全。在 Ajax 應用程序中需要了解五種就緒狀態:
• 0:請求沒有發出(在調用 open() 之前)。
• 1:請求已經建立但還沒有發出(調用 send() 之前)。
• 2:請求已經發出正在處理之中(這里通常可以從響應得到內容頭部)。
• 3:請求已經處理,響應中通常有部分數據可用,但是伺服器還沒有完成響應。
• 4:響應已完成,可以訪問伺服器響應並使用它。
與大多數跨瀏覽器問題一樣,這些就緒狀態的使用也不盡一致。您也許期望任務就緒狀態從 0 到 1、2、3 再到 4,但實際上很少是這種情況。一些瀏覽器從不報告 0 或 1 而直接從 2 開始,然後是 3 和 4。其他瀏覽器則報告所有的狀態。還有一些則多次報告就緒狀態 1。在上一節中看到,伺服器多次調用 updatePage(),每次調用都會彈出警告框 —— 可能和預期的不同!
對於 Ajax 編程,需要直接處理的惟一狀態就是就緒狀態 4,它表示伺服器響應已經完成,可以安全地使用響應數據了。基於此,回調方法中的第一行應該如 清單 13 所示。
清單 13. 檢查就緒狀態
function updatePage() {
if (request.readyState == 4)
alert("Server is done!");
}
修改後就可以保證伺服器的處理已經完成。嘗試運行新版本的 Ajax 代碼,現在就會看到與預期的一樣,只顯示一次警告信息了。
HTTP 狀態碼
雖然 清單 13 中的代碼看起來似乎不錯,但是還有一個問題 —— 如果伺服器響應請求並完成了處理但是報告了一個錯誤怎麼辦?要知道,伺服器端代碼應該明白它是由 Ajax、JSP、普通 HTML 表單或其他類型的代碼調用的,但只能使用傳統的 Web 專用方法報告信息。而在 Web 世界中,HTTP 代碼可以處理請求中可能發生的各種問題。
比方說,您肯定遇到過輸入了錯誤的 URL 請求而得到 404 錯誤碼的情形,它表示該頁面不存在。這僅僅是 HTTP 請求能夠收到的眾多錯誤碼中的一種(完整的狀態碼列表請參閱 參考資料 中的鏈接)。表示所訪問數據受到保護或者禁止訪問的 403 和 401 也很常見。無論哪種情況,這些錯誤碼都是從完成的響應 得到的。換句話說,伺服器履行了請求(即 HTTP 就緒狀態是 4)但是沒有返回客戶機預期的數據。
因此除了就緒狀態外,還需要檢查 HTTP 狀態。我們期望的狀態碼是 200,它表示一切順利。如果就緒狀態是 4 而且狀態碼是 200,就可以處理伺服器的數據了,而且這些數據應該就是要求的數據(而不是錯誤或者其他有問題的信息)。因此還要在回調方法中增加狀態檢查,如 清單 14 所示。
清單 14. 檢查 HTTP 狀態碼
function updatePage() {
if (request.readyState == 4)
if (request.status == 200)
alert("Server is done!");
}
『肆』 怎樣用JAVA實現模擬HTTP請求,得到伺服器的響應時間等參數
問題簡化一下:對一個ip,一個線程請求100次。該次請求的響應時間為調用httpClient前的響應時間減去接收到httpClient響應的時間。注意,本次請求是否有效要判斷。平均響應時間和最大響應時間只不過是響應時間的統計而已,可以用資料庫來做。
就是說資料庫記錄每次測試請求的響應時間,成功與否。統計數據最後出來。
只所以用多線程,是因為單線程順序請求100次,不能模擬伺服器真正的情況。
『伍』 關於JAVA模擬發送post請求並響應內容
如果你是用java的api實現的模擬post請求,那麼你需要在你之前構造的http request的header里加上
Cookie:名字=值 然後統一包裝成你的conenction的OutputStream。
建議你用apache的HttpClient api項目,裡面有專門處理cookie的api,這樣事情就簡單許多。
『陸』 javaweb 怎麼查看請求響應的整個過程的插件
博客原文: http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html
HTTP(HyperText Transfer Protocol)是一套計算機通過網路進行通信的規則。計算機專家設計出HTTP,使HTTP客戶(如Web瀏覽器)能夠從HTTP伺服器(Web伺服器)請求信息和服務,HTTP目前協議的版本是1.1.HTTP是一種無狀態的協議,無狀態是指Web瀏覽器和Web伺服器之間不需要建立持久的連接,這意味著當一個客戶端向伺服器端發出請求,然後Web伺服器返回響應(response),連接就被關閉了,在伺服器端不保留連接的有關信息.HTTP遵循請求(Request)/應答(Response)模型。Web瀏覽器向Web伺服器發送請求,Web伺服器處理請求並返回適當的應答。所有HTTP連接都被構造成一套請求和應答。
HTTP使用內容類型,是指Web伺服器向Web瀏覽器返回的文件都有與之相關的類型。所有這些類型在MIMEInternet郵件協議上模型化,即Web伺服器告訴Web瀏覽器該文件所具有的種類,是HTML文檔、GIF格式圖像、聲音文件還是獨立的應用程序。大多數Web瀏覽器都擁有一系列的可配置的輔助應用程序,它們告訴瀏覽器應該如何處理Web伺服器發送過來的各種內容類型。
HTTP通信機制是在一次完整的HTTP通信過程中,Web瀏覽器與Web伺服器之間將完成下列7個步驟:
(1) 建立TCP連接
在HTTP工作開始之前,Web瀏覽器首先要通過網路與Web伺服器建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網路。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的埠號是80
(2) Web瀏覽器向Web伺服器發送請求命令
一旦建立了TCP連接,Web瀏覽器就會向Web伺服器發送請求命令
例如:GET/sample/hello.jsp HTTP/1.1
(3) Web瀏覽器發送請求頭信息
瀏覽器發送其請求命令之後,還要以頭信息的形式向Web伺服器發送一些別的信息,之後瀏覽器發送了一空白行來通知伺服器,它已經結束了該頭信息的發送。
(4) Web伺服器應答
客戶機向伺服器發出請求後,伺服器會客戶機回送應答,
HTTP/1.1 200 OK
應答的第一部分是協議的版本號和應答狀態碼
(5) Web伺服器發送應答頭信息
正如客戶端會隨同請求發送關於自身的信息一樣,伺服器也會隨同應答向用戶發送關於它自己的數據及被請求的文檔。
(6) Web伺服器向瀏覽器發送數據
Web伺服器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此為結束,接著,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據
(7) Web伺服器關閉TCP連接
一般情況下,一旦Web伺服器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者伺服器在其頭信息加入了這行代碼
Connection:keep-alive
TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網路帶寬。
1、HTTP1.1 或 1.0 沒有握手的概念(在https裡面處於安全考慮才有握手)。客戶端完整的發送一個請求(請求頭+請求體),伺服器收到這個消息並處理完成後返回一個響應包http response。 然後連接關閉(不考慮keep-alive機制)。
2、客戶端發送請求是一次把請求行和請求體全部發送出去,沒有說先發送請求行等待回應再發送包體的。可
3、瀏覽器會根據你在地址欄里輸入的url進行DNS解析
4、對IIS 不是很了解。看你怎麼定義這個伺服器了,如果我們的伺服器使用最常見的apache+tomcat。那麼,apache 就是負責接收你的http請求,然後再把請求轉給tomcat 進行處理。
5、建立tcp鏈接不是根據http報文里的host欄位建立的。而是在你在地址欄中輸入完地址敲下回車(chrome有預解析機制,可能早就提前幫你解析好了)後,瀏覽器會有一個DNS解析過程,將域名轉換成IP,然後瀏覽器根據這個IP加上默認的80埠建立好TCP鏈接的。這些跟http都沒關系。
要明白,TCP位於傳輸層,HTTP位於應用層。下層只會向上層提供服務,但不會從上層獲得服務。
6、http請求的消息頭,\r\n 和包體都是一起發送的,沒有先發送誰再發送誰之分。
『柒』 Java請求對象與響應對象!
request:請求對象,是由流覽器端向服務端發起的,包含一些請求的參數和信息
response:響應對象,是由服務端向流覽器端響應的,包含一些相應的編碼、轉發路徑等等
form,mapping是struts擴展的,
form會提取頁面表單的內容,比如登陸時的用戶名、密碼組成一個對象,form實際上也是從請求對象中提取出表單的信息,封裝到一個ActionForm對象里
mapping則是對應response,mapping用於轉發,我們會在struts的配置文件中配置轉發路徑,那是一個鍵-值對,值就是要轉發的路徑,我們用mapping指向那個鍵就可以完成轉發
『捌』 javaweb請求和響應優點
1、伺服器每次收到請求時,都會為這個請求開辟一個新的線程。
2、伺服器會把客戶端的請求數據封裝到request對象中,request就是請求數據的載體。
3、伺服器還會創建response對象,這個對象與客戶端連接在一起,可以用來向客戶端發送響應。
『玖』 java發送httpclient請求後,一定得有響應嗎
不一定有響應的。如果請求的服務沒有問題,網路沒有問題的話,肯定有響應。哪怕路徑是錯的也會返回404的。
『拾』 JAVA中 一般響應和請求參數中與時間相關的存什麼類型
有些人回答問題基本上全是在瞎說,現在開發中90%的響應和請求全部採用是json對象,它的好處就是輕量,易解析,當然,有的時候跟銀行對接的時候可能會用到xml報文的傳輸方式,也就是所謂tcp協議,但平常的開發中基本上都用的是json