2010-04-08 18 views
31

मैं एंड्रॉइड में एचटीटीपीएस कनेक्शन को लागू करने के लिए नया हूं। अनिवार्य रूप से, मैं org.apache.http.client.HttpClient का उपयोग कर किसी सर्वर से कनेक्ट करने का प्रयास कर रहा हूं। मेरा मानना ​​है कि, किसी बिंदु पर, मुझे अपने क्लाइंट को निजी कुंजी के साथ अधिकृत करने के लिए एप्लिकेशन की कीस्टोर तक पहुंचने की आवश्यकता होगी। लेकिन, इस पल के लिए, मैं बस कनेक्ट करने की कोशिश कर रहा हूं और देख रहा हूं कि क्या होता है; मैं HTTP/1.1 400 खराब अनुरोध त्रुटि प्राप्त करता रहता हूं।एंड्रॉइड एचटीपी क्लाइंट और एचटीटीपीएस

कई उदाहरणों के बावजूद मैं इसके सिर या पूंछ नहीं बना सकता (उनमें से कोई भी मेरे लिए काम नहीं कर रहा है)। मेरे कोड (शरीर निरंतर xmlrpc है) इस तरह दिखता है:

private void connect() throws IOException, URISyntaxException{ 

    HttpPost post  = new HttpPost(new URI(PROD_URL)); 
    HttpClient client = new DefaultHttpClient(); 

    post.setEntity(new StringEntity(BODY)); 
    HttpResponse result = client.execute(post); 

    Log.d("MainActivity", result.getStatusLine().toString()); 

} 

तो, बहुत सरल। अगर किसी के पास कोई सलाह है तो मुझे बताएं। धन्यवाद!

उत्तर

16

यह आपको शुरू करना चाहिए। मैं मूल रूप से वही उपयोग कर रहा हूं, ThreadSafeClientConnManager को छोड़कर।

SchemeRegistry schemeRegistry = new SchemeRegistry(); 
schemeRegistry.register(new Scheme("https", 
      SSLSocketFactory.getSocketFactory(), 443)); 

HttpParams params = new BasicHttpParams(); 

SingleClientConnManager mgr = new SingleClientConnManager(params, schemeRegistry); 

HttpClient client = new DefaultHttpClient(mgr, params); 
+2

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद। मैंने वास्तव में किसी भी भाग्य के साथ पहले एक समान दृष्टिकोण की कोशिश की; वही बुरा अनुरोध त्रुटि। – harrisonlee

+0

तब समस्या HTTPS के साथ नहीं है, यह कुछ और है। मेरे द्वारा चिपकाया गया कोड मेरे लिए काम करता है। – synic

+0

बस स्पष्टीकरण के लिए: ऐसा लगता है कि आप org.apache.http.conn.ssl.SSLSocketFactory का उपयोग कर रहे हैं, जो javax.net.ssl.SSLSocketFactory जैसा नहीं है। क्या वो सही है? – Dalbergia

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