2011-08-02 5 views
0

나는 HTTP Post를 구현하여 데이터를 백엔드에 게시했습니다. Android에 HTTPS를 구현하려면 어떻게해야합니까? (이미 https 용 백엔드를 구성 했습니까?) 안드로이드의 HTTPS

나는 인터넷 검색과 발견 된 일부 솔루션 : Secure HTTP Post in Android

을하고 시도하지만 백엔드의 모든 데이터를 수신하지 않습니다.

구현하는 올바른 방법입니까? 다른 방법이 있습니까?

   File file = new File(filepath); 
     HttpClient client = new DefaultHttpClient(); 

      //String url = "http://test.....; 
      String url = "https://test......"; 

     HttpPost post = new HttpPost(url); 
      FileEntity bin = new FileEntity(file, url); 

      post.setEntity(bin); 

      HttpResponse response = client.execute(post); 

      HttpEntity resEntity = response.getEntity(); 

기본적으로 내가 fileentity를 사용하고하는 것은 HTTPPost을 할 수있는 :

다음은 내 코드입니다. 이제 https를 통해이 작업을 수행하려고합니다. 백엔드에서 https를 구현 한 후 URL에서 https를 http로 수정하고 다시 테스트했습니다. 그리고 그것은 작동하지 않습니다.

어떻게 생각하나요? 사전에

감사합니다, Perumal

+0

당신이 만약을 ' AndroidHttpClient, HttpURLConnection 또는 이와 비슷한 것을 사용하는 호출을 구현 한 경우 응용 프로그램 POST가 전송되는 URL을 변경할 수 있어야합니다. – mopsled

답변

0

당신의 HTTP 클라이언트는 SSL 소켓을 지원하는지 확인 :

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

    HttpParams params = new BasicHttpParams(); 
    ClientConnectionManager manager = new ThreadSafeClientConnManager(params, schemeRegistry); 
    HttpClient httpsClient = new DefaultHttpClient(manager, params); 

을하고 POST 요청 실행이 클라이언트를 사용

HttpPost post = new HttpPost("https://www.mysecuresite.com"); 
    post.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
    post.setEntity(new StringEntity("This is the POST body", HTTP.UTF_8)); 

    HttpResponse response = httpsClient.execute(post); 
+0

나는 이것을 시도했지만 작동하지 않습니다. 로그를 조사한 결과 javax.net.ssl.SSLPeerUnverifiedException : 피어 인증서 msg가 없습니다. SDK 2.3.3을 사용하고 있습니다. – perumal316