2011-12-07 47 views
21

Tôi có biểu mẫu HTML được sử dụng để gửi báo cáo lỗi từ ứng dụng đến máy chủ. Tôi cần bắt chước hành vi này theo lập trình. Yêu cầu POST tương ứng (hoặc loạt yêu cầu) trông như thế nào?Làm cách nào để bắt chước gửi biểu mẫu HTML trong yêu cầu POST?

<form name="bugreport" method="post" enctype="multipart/form-data" action="http://my-server.com/bugreport.php"> 
    <div name="SentData"> 
     <textarea name="logfile" class="UserVisible"></textarea><br> 
     <textarea name="configfile" class="UserVisible"></textarea><br> 
    </div> 
    <textarea name="usercomment" class="invisible"></textarea><br> 
    <input name="useremail" type="text" class="invisible"> 
    <input class="invisible" type="submit" value="Send"> 
</form> 

Trả lời

39

Yêu cầu POST bao gồm một số tiêu đề và nội dung yêu cầu. Khi bạn gửi một hình thức, trình duyệt URL encodes tên và giá trị của tất cả các lĩnh vực hình thức và sau đó đặt chúng trong cơ thể yêu cầu ở định dạng này:

fieldname1=fieldvalue1&fieldname2=fieldvalue2 

Tức là phần thân yêu cầu trông giống như một chuỗi truy vấn thông thường.


Đây là những gì được yêu cầu có thể trông giống như cho hình của bạn:

POST /bugreport.php HTTP/1.1 
Host: www.example.com 
Content-Type: application/x-www-form-urlencoded 
Content-Length: [size of the request body] 

logfile=blabla&configfile=more+blabla&usercomment=hello&useremail= 

Để đảm bảo chương trình của bạn phù hợp với những gì một trình duyệt sẽ làm gì, bạn có thể gửi mẫu với Firefox và sau đó kiểm tra các tiêu đề yêu cầu và nội dung sử dụng bảng điều khiển mạng của Firebug.

+0

Cảm ơn bạn! FireBug thực sự hữu ích (hóa ra, mặc dù, rằng bạn không cần nó một khi bạn biết nguyên tắc). –

+0

Giả sử máy chủ ** có thể ** xử lý chúng, giao thức HTTP ** ** ** có cho phép ** "dữ liệu rác" cho loại nội dung x-www-form-urlencoded không? Ví dụ. 'logfileblabla & configfile ===== mo + uselo &&& useremail = & = & = & +' – Pacerier

+0

Cảm ơn bạn. Đây là những gì tôi đang tìm kiếm. – Joey

Các vấn đề liên quan