5. Đánh giá chung: Xuất sắc F, Giỏi F, Khá F, Trung bình F, Yếu F, Điểm /
3.5.5 Ví dụ HTTP POST
HTTP POST cho phép gởi dữ liệu đến server. Dữ liệu gởi đến server qua phương thức GET chỉ giới hạn là dữ liệu chứa địa chỉ URL. Phương thức POST cho phép gởi một luồng byte đến server. Phương thức HTTP POST thực hiện theo cách tương tự với phương thức HTTP GET.
Ví dụ thực hiện một kết nối HTTP POST:
void getViaHttpConnection(String url) throws IOException { HttpConnection c = null; InputStream is = null;
OutputStream os; try {
c = (HttpConnection)Connector.open(url); // Mở kết nối // Thiết lập phương thức POST
// trong khi vẫn ở trạng thái Thiết lập
c.setRequestMethod(HttpConnection.POST);
// Mở luồng output stream và chuyển sang trạng thái Kết nối os = c.openOutputStream();
// Chuyển đổi dữ liệu thành luồng byte // và gởi đến server
os.write(“Data Sent to Server\n”.getBytes()); int status = c.getResponseCode();
// Kiểm tra status
Chương 3. Nền tảng J2ME SV: Lê Ngọc Quốc Khánh
// Đóng kết nối giống như ví dụ HTTP GET }
}
Như ví dụ trước, phương thức postViaHttpConnection() nhận tham số đầu vào là một chuỗi là địa chỉ URL được chuyển đến phương thức open() của lớp Connection. Phương thức open() trả về một đối tượng Connection đóng vai trò là một lớp
HttpConnection.
Kết nối bây giờ ở trong trạng thái thiết lập và phương thức yêu cầu được đặt là POST bằng phương thức setRequestMethod(). Tất cả các thuộc tính khác phải được thiết lập trong trạng thái này.
Phương thức openOutputStream() sẽ làm cho kết nối chuyển sang trạng thái Kết nối. Phương thức write() và flush() sẽ gởi dữ liệu đến server.
Đoạn mã còn lại giống như phương thức GET. Luồng input được mở, chiều dài của dữ liệu được kiểm tra, và dữ liệu được đọc toàn bộ khối hay từng ký tự một tùy vào chiều dài được trả về. Khối lệnh cuối cùng sẽ đóng kết nối.