2013-06-25 41 views
5

Tôi đang cố gắng để thiết lập một client HTTPS trên Android sử dụng Restlet nhưng tôi nhận được lỗi này:(1002) - Không kết nối khách hàng có sẵn hỗ trợ giao thức yêu cầu: 'HTTPS'

Internal Connector Error (1002) - No available client connector supports the required protocol: 'HTTPS'. Please add the JAR of a matching connector to your classpath. Then, register this connector helper manually.

Nhiều nguồn tin cho biết bạn chỉ cần thêm các lọ cho ssl và phụ thuộc, vì vậy tôi đã thêm các lọ sau:

  • org.restlet
  • org.restlet.ext.ssl ​​
    • org.jsslutils
  • org.restlet.ext.httpclient
    • org.apache.commons.codec_1.5
    • org.apache.commons.logging_1.1
    • org.apache .httpclient_4.1
    • org.apache.httpcore_4.1
    • org.apache.httpmime_4.1
    • org.apache.james.mime4j_0.6
    • net.jcip.annotations_1.0

Restlet của docs nói rằng bạn cần thêm một "kết nối" bên ngoài cho HTTPS. Theo đó, các tùy chọn cho một khách hàng HTTPS là:

  1. Apache HTTP khách hàng
  2. Net (mà đi kèm với JDK)

Tôi giả sử tôi có cả trên (org. apache.httpclient_4.1 và JDK).

Thông báo lỗi đề cập đến "đăng ký trình trợ giúp trình kết nối theo cách thủ công" nhưng tôi không thể tìm ra cách thực hiện. Các tài liệu đề cập đến các tham số cho các trình kết nối. Một số liên kết bị hỏng, những người khác truy cập javadocs mà không cần thêm văn bản. This one liệt kê một số thông số, nhưng tất cả các cài đặt có vẻ tùy chọn và không có gì về cách đặt một trình kết nối thay thế. Một số nguồn trên web có đoạn mã cài đặt nội dung theo "System.setProperty". Tôi đã sao chép một số và cố gắng không thành công.

+0

Bạn đã cố gắng giải quyết vấn đề này chưa? – dazito

+0

Chúng tôi đã từ bỏ hoàn toàn việc sử dụng Restlet. Chỉ sử dụng httpclient của Apache theo như tôi có thể nhớ. – Vituel

+0

Vui lòng xem câu trả lời của tôi bên dưới. Vấn đề này cần được giải quyết hoàn toàn ngay trong phiên bản 2.2 –

Trả lời

1

Sự cố này đã được giải quyết hoàn toàn trong Restlet phiên bản 2.2, nơi trình kết nối HTTP/HTTPS nội bộ hiện dựa trên HttpURLConnection, không yêu cầu phụ thuộc bổ sung. Đó là lightweigth và không cần phải sử dụng Apache HTTP Client API. Điều này hoạt động đặc biệt tốt cho phiên bản Android.

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