2013-12-09 20 views
0

我有興趣瞭解我可以觸發涉及不同方法的HTTP請求的各種方法可能的方式來觸發涉及各種方法的HTTP請求

例如。涉及GET方法進行的HTTP請求,可以在以下方式中的瀏覽器被解僱

  1. 類型網址並回車
  2. 單擊超鏈接
  3. 提交HTML表單,但未指定方法屬性
  4. 提交HTML表格方法屬性「GET」

僅涉及發射POST方法是提交一個HTML表單與方法屬性「POST」

HTTP請求的方式210

我已經嘗試對GET使用Java Servlet和好奇的檢測頭,PUT,DELETE,TRACE,使用Java servlet

從Java等待建議OPTIONS & POST/HTML/HTTP大師

僅供參考,我使用Apache Tomcat 7.0.47的試驗所有這些東西

在此先感謝

+0

瀏覽器通常不會發送POST和GET以外的請求,但是一些Javascirpt庫可以。如果您對REST很感興趣,那麼您應該考慮除瀏覽器以外的其他客戶端,認爲REST是基於HTTP的RPC的典範轉變。 –

+0

嗨,Amir,除了使用簡單HTML的瀏覽器的GET/POST之外,沒有其他方式發送請求嗎? 感謝提醒,我們可以使用AJAX發送各種方法..但我只是一個初學者,並希望使用HTML來模擬此,以 – JavaHopper

+0

開始@JavaHopper不,[HTML目前不支持除GET之外的任何其他請求和POST。](http://programmers.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms) –

回答

0

HTTP is a standard protocol。它有一個標準的請求和響應格式。它通過TCP發送。您有HTTP服務器偵聽某個端口來響應請求,並且HTTP客戶端發送這些請求。

在最基本的級別上,HTTP客戶端可以使用SocketSocketOutputStream來發送HTTP請求。 Take a look at this example.您只需將字節(從序列化的請求字符串)寫入套接字輸出流。 HTTP服務器解析字節,如果格式正確,則調度一些處理程序來處理請求。

有很多Java庫可以簡化您的任務。 For example, Java的HttpUrlConnectionApache's HTTP Components

在客戶端,發送HEAD,PUT,DELETE,TRACE,OPTIONS請求與GET或POST沒有區別,但request line和請求主體可能包含的內容除外。

在服務器端,使用Servlet s實施,您只需讓您的課程延伸HttpServlet並實施各種doXxx()方法。

+0

我試圖提交以下表格發送HEAD <形式方法= '頭部' 行動= 「myServlet」> .... 我在提琴手(HTTP代理/調試工具)還是看到了GET被解僱,而不是HEAD 有什麼具體原因? 理論上,我知道HEAD只是獲取響應頭信息..但是它顯示了我的servlet中存在的服務(ServletRequest,ServletResponse)方法的輸出 – JavaHopper

+0

@JavaHopper所有'Servlet'類的入口點是'服務「方法。如果你的類沒有擴展'HttpServlet',你將不得不實現你自己的調度例程來處理不同的http方法。 –

+0

Sotirios,進一步挖掘,我寫了一個擴展HttpServlet的類,並且我重寫了DoHead(HttpServletRequest,HttpServletResponse)方法.. 而且我仍然在收到「HTTP狀態405 - HTTP方法GET不受此URL支持」 通過你以前的鏈接,看着提琴手跟蹤,瀏覽器(IE-10)發送除POST以外的方法的GET請求.. 可能我的研究可以在我開始探索先進技術時繼續如AJAX/Web Services – JavaHopper