2016-05-25 18 views
5

Khi khởi Parse trên Android, tôi có thể kết nối thành công đến máy chủ Parse khi:
1) Tôi không chỉ định một URL máy chủ, hoặc
2) tôi đặt URL máy chủ đến máy chủ Parse.

Vì chúng tôi dự định cuối cùng sẽ di chuyển dữ liệu của chúng tôi từ Parse sang một máy chủ khác, chúng tôi muốn kết nối với một URL máy chủ khác. Tuy nhiên, khi tôi cố gắng chỉ định một URL máy chủ khác (https://api.ourhostname.com/1/) chuyển hướng (đóng vai trò là proxy) cho máy chủ Parse, ứng dụng không kết nối được với máy chủ hoàn toàn. Khi được triển khai từ dự án iOS, URL máy chủ này hoạt động tốt. Tuy nhiên, khi thực hiện trên tương đương với Android:Android Parse thực hiện không thể xác minh máy chủ tên máy tùy chỉnh

Parse.initialize(new Parse.Configuration.Builder(this) 
     .applicationId(APP_ID) 
     .clientKey(CLIENT_KEY) 
     .server("https://api.ourhostname.com/1/") 
     .build() 
    ); 

tôi nhận được một thất bại i/o:

05-24 21:46:55.319 7140-7140/com.ourapp W/System.err: com.parse.ParseRequest$ParseRequestException: i/o failure 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at com.parse.ParseRequest.newTemporaryException(ParseRequest.java:290) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at com.parse.ParseRequest$2.then(ParseRequest.java:145) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at com.parse.ParseRequest$2.then(ParseRequest.java:139) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at bolts.Task$15.run(Task.java:917) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err:  at java.lang.Thread.run(Thread.java:818) 
05-24 21:46:55.324 7140-7140/com.ourapp W/System.err: Caused by: javax.net.ssl.SSLPeerUnverifiedException: Cannot verify hostname: api.ourhostname.com 
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err:  at android.net.SSLCertificateSocketFactory.verifyHostname(SSLCertificateSocketFactory.java:242) 
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err:  at android.net.SSLCertificateSocketFactory.createSocket(SSLCertificateSocketFactory.java:486) 
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err:  at com.android.okhttp.Connection.upgradeToTls(Connection.java:1226) 
05-24 21:46:55.329 7140-7140/com.ourapp W/System.err:  at com.android.okhttp.Connection.connect(Connection.java:1183) 
... 

Từ một trình duyệt web, tôi có thể truy cập vào URL máy chủ tùy chỉnh của chúng tôi, đó là đáng tin cậy và hợp lệ từ trình duyệt, có nghĩa là nó không phải là tự ký.

Có ai khác đã gặp sự cố này từ dự án Android của họ hay không và mọi đề xuất về cách lấy SDK Parse thành công để kết nối với URL máy chủ tùy chỉnh?

UPDATE: Chúng tôi đã có thể khắc phục vấn đề này thông qua:
1) Thêm this solution ở phía Android.
2) Điều chỉnh cách máy chủ tùy chỉnh của chúng tôi phục vụ các khóa công khai của nó (đặc biệt quan trọng trong việc cho phép Marshmallow kết nối với máy chủ).

+0

Bạn đã cố gắng khắc phục sự cố chưa? Tôi đang đối mặt với cùng một vấn đề ở đây – gfpacheco

+0

@gfpacheco Tôi đã cập nhật bài đăng với cách chúng tôi khắc phục sự cố. – eimie

Trả lời

4

Chúng tôi có thể khắc phục sự cố này qua:
1) Thêm this solution ở bên Android.
2) Điều chỉnh cách máy chủ tùy chỉnh của chúng tôi phục vụ các khóa công khai của nó (đặc biệt quan trọng trong việc cho phép Marshmallow kết nối với máy chủ).

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