मुझे सर्वर पर POST अनुरोध भेजने के लिए HTTPS का उपयोग करना है (स्वयं हस्ताक्षरित प्रमाणपत्र का उपयोग करके)। यह कैसे मैं यह कर रहा है:एचटीटीपीएस और स्व-हस्ताक्षरित प्रमाणपत्र समस्या
HttpClient httpClient = getHttpClient();
for (int i = 0; i < PARAMS.length && !mHttpPost.isAborted(); ++i) {
mHttpPost.setURI(URI.create(mUri + "/" + PARAMS[i].getPath()));
mHttpPost.setEntity(new UrlEncodedFormEntity(PARAMS[i].getContents(), HTTP.UTF_8));
HttpResponse response = httpClient.execute(mHttpPost);
[...]
}
getHttpClient साथ
() के रूप में परिभाषित इस प्रकार है:
public static DefaultHttpClient getHttpClient() {
DefaultHttpClient client = null;
// Setting up parameters
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "utf-8");
params.setBooleanParameter("http.protocol.expect-continue", false);
// Setting timeout
HttpConnectionParams.setConnectionTimeout(params, TIMEOUT);
HttpConnectionParams.setSoTimeout(params, TIMEOUT);
// Registering schemes for both HTTP and HTTPS
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
final SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory();
sslSocketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
registry.register(new Scheme("https", sslSocketFactory, 443));
// Creating thread safe client connection manager
ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(params, registry);
// Creating HTTP client
client = new DefaultHttpClient(manager, params);
return client;
}
लेकिन मैं एक "न विश्वसनीय सर्वर प्रमाण पत्र" अपवाद मिलता है। मुझे पता है कि स्व-हस्ताक्षरित प्रमाणपत्रों के बारे में कई प्रश्न पहले ही यहां पोस्ट किए जा चुके हैं, लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता है ...
क्या कोई जानता है कि कैसे करना है?
कुछ विवरण: मैं एमुलेटर पर एपीआई स्तर 4 (एंड्रॉइड 1.6) के साथ काम कर रहा हूं।
हाय, मैं जानता हूँ कि यह एक बहुत पहले पोस्ट है। लेकिन वर्तमान में मैं इस HTTPS कनेक्शन से फंस गया हूं। किसी भी सुरक्षित HTTPS साइट्स में प्रवेश करने से पहले मुझे क्या करने की ज़रूरत है? –
यह समाधान वास्तव में खतरनाक है; आप HTTPS का उपयोग करने के सुरक्षा लाभों को फेंक रहे हैं (आपका कोड अंधेरे से खराब प्रमाणपत्रों पर भरोसा करेगा)। – Brian