2016-12-28 2 views
0

Ich benutzte eine http-URL, aber jetzt muss ich zu https wechseln. Dies ist mein Code:Wie wird eine HTTPS POST-Anfrage in Android durchgeführt?

throws IOException { 

    String result = ""; 
    try { 
     String strPost = ""; 
     for(String key : post.keySet()){ 
      strPost+= key+"="+post.get(key)+"&"; 
     } 
     strPost = strPost.substring(0,strPost.length()-1); 


     URL urlPost = new URL(url); 
     HttpURLConnection urlConnection = (HttpURLConnection)urlPost.openConnection(); 


     urlConnection.setRequestMethod("POST"); 
     urlConnection.setRequestProperty("USER-AGENT", "Mozilla/5.0"); 
     urlConnection.setRequestProperty("ACCEPT-LANGUAGE", "en-US,en;0.5"); 
     urlConnection.setDoOutput(true); 

     DataOutputStream dStream = new DataOutputStream(urlConnection.getOutputStream()); 
     dStream.writeBytes(strPost); 
     dStream.flush(); 
     dStream.close(); 

     BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
     String line = ""; 
     StringBuilder responseOutput = new StringBuilder(); 
     while((line = br.readLine()) != null) { 
      responseOutput.append(line); 
     } 
     br.close(); 

     result = responseOutput.toString(); 

    }catch (Exception ex){ 

    } 
    return result; 
} 

Ich habe versucht, den Einsatz HttpsURLConnection aber es funktioniert nicht. Ich habe mir andere Fragen dazu angeschaut, aber es hat auch nicht funktioniert.

Antwort

0

Weitere Informationen finden Sie auf der offiziellen Website unter Here. und auch ersetzen HttpURLConnection mit HttpsURLConnection

0

Verwenden Sie den folgenden Code für https: -

 URL url = new URL(inputURL); 
     HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 
     conn.setSSLSocketFactory(PinnedPublicKeySocketFactory.createSocketFactory()); 
     conn.setDoOutput(true); 
     conn.setDoInput(true); 
     conn.setRequestProperty("Content-Type", "application/json"); 
     conn.setRequestProperty("ApiUserName", SoapHeader.VALUE_USERNAME); 
     conn.setRequestProperty("ApiPassword", SoapHeader.VALUE_PASSWORD); 
     conn.setRequestProperty("ApiKey", SoapHeader.VALUE_AUTH); 
     conn.setRequestMethod("POST"); 
     conn.setConnectTimeout(1 * 60 * 1000); 


     DataOutputStream out = new DataOutputStream(conn.getOutputStream()); 
     out.writeBytes(jsonRequest.toString()); 
     conn.connect(); 

     if (conn.getResponseCode() == 200) { 
      InputStream input = conn.getInputStream(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       result.append(line); 
      } 
     } 

     out.flush(); 
     out.close(); 
Verwandte Themen