AndroidからのJSONコンテンツの読み込み

私はURLからJSONを読むことに問題があります。

デスクトップアプリケーションの場合、URLからコンテンツを読み込むために「カール」を使用しています。

i.e. curl -H 'Accept: application/json' 'http://example.com/abc.py/data'

私はAndroid Appで同じことをするために次のコードを使用していますが、動作していません。

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        httppost.addHeader("Accept", "application/json"); 
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();

誰もこれで助けることができますか?

ありがとう、

1
何が効いていないのですか?
追加された 著者 Mohit Deshpande,
あなたのアンドロイドアプリでJSONを解析しようとしていますか?
追加された 著者 Parth Doshi,

2 答え

それがうまくいかない理由はたくさんありますが、1つは、実際にはgetContentから返されたinputStreamです。私のアプリからの作業コードのスニペットです

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


...


private static String getInputStreamAsString(Context ctxt, InputStream is)
{
    byte[] sBuffer = new byte[512];
    ByteArrayOutputStream content = new ByteArrayOutputStream();

   //Read response into a buffered stream
    int readBytes = 0;
    try
    {
        while ((readBytes = is.read(sBuffer)) != -1)
        {
            content.write(sBuffer, 0, readBytes);
        }
    }
    catch (IOException e)
    {
        Util.e(ctxt, TAG, Util.fmt(e));
    }
    return new String(content.toByteArray());
}


public static test() {
    HttpClient client = DefaultHttpClient()
    HttpGet request = new HttpGet(url);
    HttpResponse response = client.execute(request);;
    StatusLine status = response.getStatusLine();
    String str = getInputStreamAsString(ctxt, response.getEntity().getContent());
    JSONObject json = new JSONObject(str);
}

...
0
追加された

あなたの返事をありがとうございました。

エラーは、マニフェスト内でインターネットのアクセス許可を設定していないために発生していたため、URLに接続できませんでした。

それは今働く:)

0
追加された
解決したらこの質問を閉じる;)
追加された 著者 Merlin,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript