2012-07-10 211 views
2

我想從AndroidHTTP POST請求的Android

聯繫的API

我發現這個示例代碼...

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 
} 
} 

我的問題是,我怎麼能看到,以確保它是響應得到一個?有沒有添加API密鑰的方法?

此外,「yoursite.com」必須是PHP文件嗎?

+0

服務器不必在php中使用任何你想在服務器端。我們使用python和Django。 – sww314 2012-07-10 22:36:28

回答

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

觀看這些視頻(YouTube Link)

它是製作登錄應用程序爲Android的6部分教程。它還顯示瞭如何使用MySQL創建數據庫。希望能幫助到你。