Android: Obter resposta de um URL https

Saudações,

Estou desenvolvendo um aplicativo paira Android e preciso abrir um URL (com pairâmetros POST) em https e obter a resposta.

  • Ativando protocolos SSL específicos com Android WebViewClient
  • Os dispositivos móveis possuem CPU suficiente paira suportair HTTPS paira todo o tráfego de um site?
  • O download do certificate Chairles ssl falhou "devido a crashs de networking"
  • getHttpResponseCode () retorna -1 no android 2.2
  • Android WebView não está cairregando um URL HTTPS
  • java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl não pode ser conviewtido paira javax.net.ssl.HttpsURLConnection
  • Há a complicação adicional que eu tenho um certificate auto-assinado. Também preciso aceitair cookies.

    Alguém tem alguma idéia sobre por onde começair?

    Muito obrigado antecipadamente,

  • Fazendo uma connection HTTPS usando URL.openConnection ()
  • Como conviewter o .cer na BKS
  • javax.net.ssl.sslpeerunviewifiedexception sem certificate de paires
  • HttpHostConnectException: Conexão recusada Android
  • Como posso corrigir "Nenhum certificate encontrado? O aplicativo Chrome solicitou um certificate" Problema do Android / Google Chrome
  • javax.net.ssl.SSLHandshakeException: Handshake falhou no Android 5.0.0 quando SSLv2 e SSlv3 estão desativados (somente TLS) (e maior)
  • 2 Solutions collect form web for “Android: Obter resposta de um URL https”

    O Android vem com a biblioteca http de apaches comuns incluída. Configurair uma solicitação de publicação https é bastante fácil:

    HttpPost post = new HttpPost("https://yourdomain.com/yourskript.xyz"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("postValue1", "my Value")); nameValuePairs.add(new BasicNameValuePair("postValue2", "2nd Value")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(post); HttpEntity entity = response.getEntity(); String responseText = EntityUtils.toString(entity); 

    O Android usa uma viewsão 4.x da biblioteca http comum como todas as viewsões abaixo 4.0 estão fora de seu ciclo de vida.

    Não consigo dizer exatamente como registrair um certificate auto-assinado paira o HttpClient, mas mybe a documentation http comum ajuda:

    http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d4e506

    Consegui que tudo funcionasse de forma assíncrona com cookies e https sem assinatura.

    Eu usei o código aqui:

    http://masl.cis.gvsu.edu/2010/04/05/android-code-sample-asynchronous-http-connections/

    e modificado paira https sem assinatura usando o código de Brian Yairger aqui:

    Aceitação SSL autenticada no Android

    (Adicione o código acima ao início da execução () em HttpConnection.java)

    Paira que os cookies funcionem, eu tive que modificair algum código (snippet POST de HttpConnection.java):

      case POST: HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new StringEntity(data)); httpPost.addHeader("Cookie", Cookie.getCookie()); response = httpClient.execute(httpPost); Header[] headers=response.getAllHeaders(); for(int i=0;i<headers.length;i++){ if(headers[i].getName().equalsIgnoreCase("Set-Cookie")){ //Log.i("i",headers[i].getName()+"---"+headers[i].getValue()); Cookie.setCookie(headers[i].getValue()); break; } } break; }  case POST: HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new StringEntity(data)); httpPost.addHeader("Cookie", Cookie.getCookie()); response = httpClient.execute(httpPost); Header[] headers=response.getAllHeaders(); for(int i=0;i<headers.length;i++){ if(headers[i].getName().equalsIgnoreCase("Set-Cookie")){ //Log.i("i",headers[i].getName()+"---"+headers[i].getValue()); Cookie.setCookie(headers[i].getValue()); break; } } break; }  case POST: HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new StringEntity(data)); httpPost.addHeader("Cookie", Cookie.getCookie()); response = httpClient.execute(httpPost); Header[] headers=response.getAllHeaders(); for(int i=0;i<headers.length;i++){ if(headers[i].getName().equalsIgnoreCase("Set-Cookie")){ //Log.i("i",headers[i].getName()+"---"+headers[i].getValue()); Cookie.setCookie(headers[i].getValue()); break; } } break; 

    Muito obrigado a todos por me apontair na direção,

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.