How to create RESTful Web service with Netbeans – FormParam

บทนำ (Overview)

จากบทความก่อนหน้าได้นำเสนอวิธีการส่ง “Parameter” ผ่าน “URL” โดยใช้ “Get Method” หรือที่เรียกว่า “PathParam” (How to create RESTful Web service with Netbeans – Multiple PathParam) บทความนี้นำเสนอวิธีการส่งข้อมูลโดยใช้ “Post Method” ซึ่งจะไม่ส่งผ่าน URL แล้วแต่จะส่งผ่านส่วน “Body” ของ “HTTP request message” แทน

ขั้นตอน (Steps)

  1. ก่อนอื่นจะต้องการเพิ่ม “javax.ws.rs.POST” และ “javax.ws.rs.FormParam” เสียก่อน
    import javax.ws.rs.POST;
    import javax.ws.rs.FormParam;
    
  2. และเปลี่ยน “Get” เป็น “Post” ก่อนเรียกใช้ “Function”
    @POST
    
  3. จากนั้นเรียกใช้ “@FormParam(“user”)” แทน “@PathParam(“user”)” ดังนี้
        @POST
        public String checkLogin(@FormParam("user") String tmpUser, @FormParam("pass") String tmpPass) {
            return "Username: " + tmpUser + "..." + "Password: " + tmpPass  ;
        }
    
  4. จาก “Source-code” ในบทความที่แล้วสามารถเพิ่มเติมได้ดังต่อไปนี้
    package helloworld;
    
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.FormParam;
    
    @Path("Login")
    public class LoginResource {
    
        @POST
            public String checkLogin(@FormParam("user") String tmpUser, @FormParam("pass") String tmpPass) {
            return "Username: " + tmpUser + "..." + "Password: " + tmpPass  ;
        }
        
        @GET
        @Path("/Forgot")
        public String forgotPassword() {
            return "E-mail sent already";
        }  
    }
    
  5. ลอง “Run” และส่ง “Parameter” แบบ “Get” และค่าแบบเก่าได้ผลดังนี้ restservice-netbean16
  6. ที่นี้ลองทดสอบส่งคำสั่งโดยใช้วิธี “Post” ผ่านโปรแกรม “Burp” ดังนี้
    POST /Server/resources/Login/ HTTP/1.1
    Host: localhost:8080
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 29
    
    user=user-test&pass=pass-test
    
  7. ได้ผลลัพท์ดังรูป (สามารถศึกษาวิธีการใช้ Burp ได้ที่บทความ How to set burp to intercept HTTP messages)restservice-netbean17

ใส่ความเห็น