天天看點

模拟Http發送get、post、put、delete請求

      最近在公司要定義和實作Restful接口,需要模拟Http請求來驗證請求是否能進入接口,現在把學習的東西記錄下來以備以後查詢。

      首先說一說模拟get請求,get請求最簡單的方式是通過位址欄輸入位址和參數。這個沒什麼可說的。有一個模拟get請求的好工具值得學習一下,那就是Opera。我們可以到:http://download.csdn.net/detail/u012453843/9676681下載下傳Opera_1217_int_Setup_x64.exe進行安裝。

      安裝好Opera之後,我們打開Opera浏覽器,然後按Ctrl+Shift+i快捷鍵打開開發者模式,如下圖所示。

模拟Http發送get、post、put、delete請求

      我們可以試着向百度發送一個get請求,然後看看響應内容,這裡隻是随便舉了個例子,大家可以發送任意自己想要發送的GET請求。

模拟Http發送get、post、put、delete請求

      模拟發送GET請求,也可以用Ajax來完成,請求的方式如下,其中comment是項目部署在tomcat的通路路徑,CommentAPI是實作Restful接口的類的别名。2是要擷取的評論的ID

$.ajax({url:"http://localhost:8080/comment/CommentAPI/2",type:"GET",success:function(response){debugger;alert(response);}});

      list請求跟get請求非常相似,隻不過在url路徑上少一層"/2"而已。如下所示,如果需要參數,請放到data裡面。

$.ajax({url:"http://localhost:8080/comment/CommentAPI",data:{siteId:"2"},type:"GET",success:function(response){debugger;alert(response);}});

      關于模拟發送Post請求的話,用Ajax更為合适,我們隻需要在谷歌浏覽器的控制台輸入我們的Ajax請求便可以模拟POST請求,下面我把Ajax請求粘貼出來,其中zcms是部署的項目的通路路徑,test是繼承Restful類的别名,type類型可以是POST也可以是GET。success:function(response)是回調函數。打上debugger我們可以在控制台輸入response來檢視傳回結果。

$.ajax({url:"http://localhost:8080/zcms/test",type:"POST",data:{UserName:"admin",Password:"admin"},success:function(response){debugger;alert(response);}})

     模拟發送DELETE請求,也可以用Ajax來完成,請求的方式如下,其中comment是項目部署在tomcat的通路路徑,CommentAPI是實作Restful接口的類的别名,3表示要删除的評論的ID。

$.ajax({type:"DELETE",url:"http://localhost:8080/comment/CommentAPI/3"});

      模拟發送PUT請求,也用Ajax來實作,如下所示,其中,comment是項目部署在tomcat的通路路徑,Vote是實作Restuful接口的類的别名,該類隻實作PUT請求,也就是頂和踩的功能。

$.ajax({type:"PUT",url:"http://localhost:8080/comment/Vote/2",data:{operate:"down",voter:"張三",voterip:"1.1.1.1"}});

       參數傳遞還可以直接在url路徑中,如下所示

$.ajax({type:"PUT",url:"http://localhost:8080/comment/Vote/2?operate=down&voter=張三&voterip=1.1.1.1"});

      隻是通過這種url方式傳遞參數的形式會有亂碼的問題,需要我們在背景擷取的時候字元串轉換一下,因為頁面預設是用iso8859-1編碼的。而我們的工程預設是用utf-8編碼的,是以轉換一下就可以了。

String str=new String($V("voter").getBytes("iso8859-1"),"utf-8");