2012-07-10 5 views
2

Je suis en train de contacter une API d'Androiddemande HTTP Post Android

J'ai trouvé cet exemple de code ...

public void postData() { 
// Create a new HttpClient and Post Header 
HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

try { 
    // Add your data 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
    nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
    nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    // Execute HTTP Post Request 
    HttpResponse response = httpclient.execute(httppost); 

} catch (ClientProtocolException e) { 
    // TODO Auto-generated catch block 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
} 
} 

Ma question est, comment puis-je voir la réponse à l'assurer est en avoir un? Y a-t-il un moyen d'ajouter une clé API?

De plus, le fichier "yoursite.com" doit-il être un fichier PHP?

+0

Le serveur n'a pas besoin d'être en PHP pour utiliser ce que vous voulez du côté serveur. Nous utilisons python et Django. – sww314

Répondre

4
HttpEntity entity = response.getEntity(); 
if (entity != null) { 
    InputStream instream = entity.getContent(); 
    try { 

     //read stream 
     //if expect binary data: 
     BufferedInputStream stream = new BufferedInputStream(instream); 
     int maxBytes = 128 * 1024; 
     if(entity.getContentLength() > maxBytes) { 
      throw new IllegalArgumentException("Much too big!"); 
     } 
     byte[] bytes = new byte[(int) entity.getContentLength()]; 
     int offset = 0, count = bytes.length; 
     while(stream.read(bytes, offset, count) > -1 && count > 0) { 
      count -= offset; 
     } 

     final Bitmap responseImage = BitmapFactory.decodeByteArray(
       bytes, 0, bytes.length); 

     //or if you expect text 
     BufferedReader reader = new BufferedReader(
       new InputStreamReader(instream, Charset.forName(
         entity.getContentEncoding().getValue()))); 

     StringBuffer buffer = new StringBuffer(); 
     String line; 
     while((line = reader.readLine()) != null) { 
      buffer.append(line); 
     } 

     final String responseText = buffer.toString(); 

    } finally { 
     instream.close(); 
    } 
} 
0

Regardez ces vidéos (YouTube Link)

Il est un tutoriel 6 parties de faire un journal en application pour Android. Il montre également comment créer une base de données avec MySQL. J'espère que cela aide.