Đang chuẩn bị liên kết để tải về tài liệu:
Lập trình cho điện thoại di đông - 3
Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Một kết nối HTTP có thể ở một trong ba trạng thái khác nhau: Thiết lập (Setup), Kết nối (Connectd), hay Đóng (Close). Trong trạng thái Thiết lập, kết nối chưa được tạo. Phương thức setRequestMethod() và setRequestProperty() chỉ có thể được dùng trong trạng thái thiết lập. Chúng được dùng để thiết lập phương thức yêu cầu (GET, POST, HEAD) và thiết lập thuộc tính HTTP (ví dụ. User-Agent). Khi sử dụng một phương thức yêu cầu gởi dữ liệu đến hay nhận dữ liệu về từ server sẽ làm cho kết nối chuyển sang trạng thái Kết nối | phép dùng tất cả các phương thức của HttpConnection. Một kết nối HTTP có thể ở một trong ba trạng thái khác nhau Thiết lập Setup Kết nối Connectd hay Đóng Close . Trong trạng thái Thiết lập kết nối chưa được tạo. Phương thức setRequestMethod và setRequestProperty chỉ có thể được dùng trong trạng thái thiết lập. Chúng được dùng để thiết lập phương thức yêu cầu GET POST HEAD và thiết lập thuộc tính HTTP ví dụ. User-Agent . Khi sử dụng một phương thức yêu cầu gởi dữ liệu đến hay nhận dữ liệu về từ server sẽ làm cho kết nối chuyển sang trạng thái Kết nối. Gọi phương thức close sẽ làm cho kết nối chuyển sang trạng thái Đóng. Hình 3 minh họa các trạng thái kết nối khác nhau Hình 3 . Các trạng thái kết nối HTTP Lưu ý rằng gọi bất kì phương thức nào liệt kê ở trên ví dụ. openInputStream getLenght cũng sẽ làm cho kết nối chuyển sang trạng thái Kết nối. 1.4 Ví dụ HTTP GET Phương thức HTTP GET cho phép lấy dữ liệu từ server và là phương thức mặc định nếu không xác định phương thức trong trạng thái Thiết lập. Ví dụ thực hiện một kết nối HTTP GET cơ bản void getViaHttpConnection String url throws IOException HttpConnection c null InputStream is null try c HttpConnection Connector.open url Mở kết nối HTTP is c.openInputStream Mở Input Stream mặc định GET type c.getType int len int c.getLength if len 0 byte data new byte len int numBytes is.read data Nếu biết chiều dài processData data else int ch while ch is.read -1 đọc đến khi nào gặp -1 stringBuffer.append char ch . processBuffer stringBuffer finally if is null is.close if c null c.close getViaHttpConnection nhận một chuỗi là tham số đầu vào đó là địa chỉ địa chỉ URL chuyển cho 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. Phương thức openInputStream sẽ làm cho kết nối chuyển sang trạng thái Kết nối. Vì không có yêu cầu phương thức nào kết nối sẽ mặc định là một kết nối HTTP GET. Phương thức getLength sẽ trả về chiều dài của dữ liệu gởi từ server.