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 リンク)

androidのログインアプリを作る6部構成のチュートリアルです。また、MySQL でデータベースを作成する方法も示します。それが役に立てば幸い。

于 2012-07-10T22:48:32.157 に答える