2

我正在尝试从 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 文件?

4

2 回答 2

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();
    }
}
于 2012-07-10T21:27:14.633 回答
0

观看这些视频(YouTube 链接)

这是一个由 6 部分组成的为 android 制作登录应用程序的教程。它还展示了如何使用 MySQL 创建数据库。希望能帮助到你。

于 2012-07-10T22:48:32.157 回答