2016-07-29 1 views
1

ich meine manifiest aktualisiert:sendind eine GET/POST-Anfragen an eine API in Android Studio

<uses-permission android:name="android.permission.INTERNET" /> 

und versuchte zu Google, wie einfach http senden mit Android bekommen Anfrage, fanden viele verschiedene Antworten, die meisten von ihnen mit veralteten Methoden veraltet.

Wie sende ich HTTP GET/POST an meine API URL, zum Beispiel http://www.apiawesome.com/getData?

Meine API gibt JSON-Array in einem JSON-Objekt zurück.

Mein Code:

private void loadData() 
    { 
     URL url = null; 
     try { 
      url = new URL("http://www.myapi.com/api/loadData"); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
     HttpURLConnection urlConnection = null; 
     try { 
      urlConnection = (HttpURLConnection) url.openConnection(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
      InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
      readStream(in); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      urlConnection.disconnect(); 
     } 
} 

can't resolve method readStream.in() 
+0

Teilen Sie Ihren Code – Shaishav

+0

Zeigen Sie uns Ihre Forschung –

Antwort

0

starten, aktualisiert-Code für POST und für die params in url

HttpURLConnection httpcon=null; 
        try{ 
//Connect 
         httpcon = (HttpURLConnection) ((new URL(url).openConnection())); 
         httpcon.setDoOutput(true); 
         httpcon.setDoInput(true); 
         httpcon.setRequestProperty("Content-Type", "application/json"); 
         httpcon.setRequestProperty("Authorization",clientkey); 
         httpcon.setRequestMethod("POST"); 
         httpcon.connect(); 
//Write 


         JSONObject object=new JSONObject(); 
         try 
         { 
          object.put("to","/topics/"+topic.trim()); 
         }catch (Exception e){} 
         JSONObject data=new JSONObject(); 
         try 
         { 
          data.put("message",message); 
         }catch (Exception e){} 

         try 
         { 
          data.put("extmess",messageevent); 
         }catch (Exception e){} 

         try 
         { 
          object.put("data",data); 
         }catch (Exception e){} 

         OutputStream os = httpcon.getOutputStream(); 
         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 
//   writer.write(getPostDataString(postDataParams)); 
         writer.write(object.toString()); 
         writer.flush(); 
         writer.close(); 
         os.close(); 

//Read 
         BufferedReader br = new BufferedReader(new InputStreamReader(httpcon.getInputStream(),"UTF-8")); 

         String line = null; 
         StringBuilder sb = new StringBuilder(); 

         while ((line = br.readLine()) != null) { 
          sb.append(line); 
         } 

         br.close(); 
         result = sb.toString(); 

        } catch (UnsupportedEncodingException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         try { 
          int statusCode = httpcon.getResponseCode(); 
          Log.e("",""+statusCode); 
         }catch (Exception eee) 
         { 
          eee.printStackTrace(); 
         } 

         e.printStackTrace(); 
        } 
0

Eine der besten Möglichkeiten, erhalten in den HTTP-Anfragen in Android wird mit Googles zu machen eigene Volley Bibliothek

Sie zu diesen Quellen beziehen können, um zu sehen, wie die Bibliothek benutzen:

  1. Transmitting Network Data Using Volley
  2. Sending a Simple Request
  3. Android working with Volley Library
  4. Android JSON parsing using Volley
  5. An Introduction to Volley

Mit Ausnahme dieser Ressourcen der Bibliothek sehr einfach zu bedienen ist und viele Online-Dokumentation

+0

Volley ist nicht im Besitz von Google. Google empfiehlt Glide library und Volley –

1

Verwenden Sie keine HttpURLConnection oder Volley, Retrofit i Es ist der Weg zu gehen. Modern, effizient, einfach zu bedienen und schnell. Es ist ein echter Diamant.

+0

'private void connect() { @GET (" Benutzer/Liste ") }" "Anmerkungen sind hier nicht erlaubt", ich bin wirklich neu, aber warum bekomme ich diesen Fehler ? Die Website ist nicht in anfängerfreundlichen Art und Weise dokumentiert. – TheUnreal

+0

@TheUnreal Ja, Retrofit ist eine Bibliothek mit "höherer Kompetenz", aber wenn Sie es ein paar Stunden geben, werden Sie es sehr mögen. Ich empfehle Ihnen dieses Tutorial, es ist für die neue Version 2.0.0. http://www.vogella.com/tutorials/Retrofit/article.html – slanecek

Verwandte Themen