2016-05-25 7 views
5

सत्यापित नहीं कर सकता, मैं सफलतापूर्वक पार्स सर्वर से कनेक्ट करने में सक्षम हूँ जब:
1) मैं एक सर्वर URL निर्दिष्ट नहीं करते, या
2) मैं सेट पार्स सर्वर पर सर्वर यूआरएल।

क्योंकि हम अंततः पार्स से एक अलग मेजबान में अपने डेटा माइग्रेट करना चाहते हैं, हम एक अलग सर्वर यूआरएल से कनेक्ट करना चाहते हैं। हालांकि, जब मैं एक अलग सर्वर यूआरएल (https://api.ourhostname.com/1/) निर्दिष्ट करने का प्रयास करता हूं जो पार्स सर्वर पर रीडायरेक्ट करता है (प्रॉक्सी के रूप में कार्य करता है), तो ऐप पूरी तरह से सर्वर से कनेक्ट करने में विफल रहता है। आईओएस प्रोजेक्ट से लागू होने पर, यह सर्वर यूआरएल ठीक काम करता है। हालांकि, जब एंड्रॉयड बराबर पर लागू:एंड्रॉयड पार्स कार्यान्वयन कस्टम सर्वर होस्टनाम

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

मैं एक 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) 
... 

एक वेब ब्राउज़र से, मैं अपने कस्टम सर्वर URL है, जो विश्वसनीय है दौरा करने में सक्षम है और कर रहा हूँ ब्राउज़र से मान्य, जिसका अर्थ है कि यह स्वयं हस्ताक्षरित नहीं है।

क्या किसी और को अपने एंड्रॉइड प्रोजेक्ट से इस समस्या का सामना करना पड़ा है, और कस्टम सर्वर यूआरएल से कनेक्ट करने के लिए पार्स एसडीके को सफलतापूर्वक कैसे प्राप्त किया जाए, इस पर कोई सुझाव है?

अद्यतन:)
1 एंड्रॉयड तरफ this solution जोड़ना: हम के माध्यम से इस समस्या को दूर करने में सक्षम थे।
2) समायोजित करना कि हमारा कस्टम सर्वर अपनी सार्वजनिक कुंजी कैसे प्रदान करता है (जो विशेष रूप से सर्वर से कनेक्ट करने के लिए मार्शमलो को सक्षम करने में महत्वपूर्ण था)।

+0

क्या आपने इसे ठीक करने का प्रबंधन किया था? मुझे यहां एक ही समस्या का सामना करना पड़ रहा है – gfpacheco

+0

@gfpacheco मैंने इस पोस्ट को अपडेट किया है कि हमने समस्या को कैसे ठीक किया है। – eimie

उत्तर

4

हम इस समस्या को ठीक करने में सक्षम थे:
1) एंड्रॉइड पक्ष पर this solution जोड़ना।
2) समायोजित करना कि हमारा कस्टम सर्वर अपनी सार्वजनिक कुंजी कैसे प्रदान करता है (जो विशेष रूप से सर्वर से कनेक्ट करने के लिए मार्शमलो को सक्षम करने में महत्वपूर्ण था)।

संबंधित मुद्दे