2016-07-16 1 views
1

Ich bin neu bei Android und jetzt bin ich es leid, das beste Tutorial über Android HTTP-Anfragen zu suchen.So senden Sie http-Post-Anfrage von Android?

Ich versuche, diese Parameter zu phpServer zu schicken,

  • Name = "einige Namen"

  • email = "einige E-Mail"

Können wir dies tun in MainActivity.java Datei? Benötigen Sie eine JAR-Datei (Bibliothek)? alle Vorschläge sind willkommen.

ich das versucht,

@Override 
public void onClick(View view) { 
    if(view == btnSubscribe){ 
     HttpURLConnection client = null; 
     try { 
      URL url = new URL("http://www/somewebsite.com/API/SUBSCRIBE"); 
      client = (HttpURLConnection) url.openConnection(); 
      client.setRequestMethod("POST"); 
      client.setRequestProperty("name","test one"); 
      client.setRequestProperty("email","[email protected]"); 
      client.setDoOutput(true); 

      OutputStream outputPost = new BufferedOutputStream(client.getOutputStream()); 
      outputPost.flush(); 
      outputPost.close(); 
      client.setChunkedStreamingMode(0); 

     } catch(MalformedURLException error) { 
      showError("Handles an incorrectly entered UR"); 
     } 
     catch(SocketTimeoutException error) { 
      showError("Handles URL access timeout"); 
     } 
     catch (IOException error) { 
      showError("Handles input and output errors"); 
     }finally { 
      if(client != null) 
      client.disconnect(); 
     } 
    } 
} 
+0

wo Code ???? –

+1

@Sahan Gehe durch [dies] (http://StackOverflow.com/Help/Mcve) – Nisarg

+0

@IntelliJAmiya Entschuldigung Ich habe alle Codes gelöscht, weil nicht für mich gearbeitet. Jetzt bin ich in einem neuen Projekt. – Sahan

Antwort

5

Ich benutze diesen Code und funktioniert auch. Probieren Sie diesen Code aus.

public static String httpPostRequest(Context context, String url, String email) { 
     String response = ""; 
     BufferedReader reader = null; 
     HttpURLConnection conn = null; 
     try { 
      LogUtils.d("RequestManager", url + " "); 
      LogUtils.e("data::", " " + data); 
      URL urlObj = new URL(url); 

      conn = (HttpURLConnection) urlObj.openConnection(); 
      conn.setRequestMethod("POST"); 
      conn.setDoOutput(true); 
      OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 

      data += "&" + URLEncoder.encode("Email", "UTF-8") + "=" 
        + URLEncoder.encode(email, "UTF-8"); 


      wr.write(data); 
      wr.flush(); 

      LogUtils.d("post response code", conn.getResponseCode() + " "); 

      int responseCode = conn.getResponseCode(); 



      reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 

      while ((line = reader.readLine()) != null) { 
       sb.append(line + "\n"); 
      } 

      response = sb.toString(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      LogUtils.d("Error", "error"); 
     } finally { 
      try { 
       reader.close(); 
       if (conn != null) { 
        conn.disconnect(); 
       } 
      } catch (Exception ex) { 
      } 
     } 
     LogUtils.d("RESPONSE POST", response); 
     return response; 
    } 
+0

Großartig! Es funktioniert – Sahan

+0

nicht sicher, wo Sie 'Daten' definiert – lucidbrot

0

Zuerst die httpClint veraltet ist jetzt so jetzt, wenn Sie HttpURLConnection für das gleiche verwenden können.

können Sie here

beziehen, und wenn Sie Bibliothek verwenden möchten, dann können Sie

Diese beiden sind die beste Bibliothek verwenden.

Prost