-1

バッファ(Androidアプリケーション)を読み取って、値を自分に設定しようとしていTextView 'httpStuff'ます。しかし、私はURIから何らかの応答を得ているとは思いません。

ランタイムエラーは発生しません。同じロジックのフレーバーをたくさん試しました。何も機能していないようです。

INTERNETマニフェストにはすでに権限が設定されています。SdkVersion="15"。何か助けはありますか?

HttpClient client = new DefaultHttpClient();
URI website = new URI("http://www.mybringback.com");
HttpGet request = new HttpGet();
request.setURI(website);
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity(); 
InputStream is = entity.getContent(); 
BufferedReader in = new BufferedReader(new InputStreamReader(is));

httpStuf.setText( in.readLine());
4

4 に答える 4

2

while ループが欠落していると思います。また、 only と言うとin.readLine()、十分なデータがありますが、応答から空の行が返されている可能性があります。このようにリーダーを完全に読んで、その内容を確認してください。 .

while ((line = rd.readLine()) != null) {
    httpStuf.setText(line+"\r\n");
}

これがあなたを助けることを願っています。

于 2012-05-30T04:42:49.683 に答える
1

このコードは私のために働いた

  InputStream is = response.getEntity().getContent();
  String strResponse = inputStreamToString(is);


private String inputStreamToString(InputStream is)
{

    String line = "";
    StringBuilder total = new StringBuilder();
    // Wrap a BufferedReader around the InputStream
    BufferedReader rd = new BufferedReader(new InputStreamReader(is), 1024 * 4);
    // Read response until the end
    try
    {

        while ((line = rd.readLine()) != null)
        {
            total.append(line);
        }
    } catch (IOException e)
    {
        Log.e(TAG, "error build string" + e.getMessage());
    }
    // Return full string
    return total.toString();
}
于 2012-05-30T04:45:05.630 に答える
0

このメソッドを使用して HTTP 応答をキャッチするだけで、うまく機能します。

public String httpGetResponse(String url) {
        try {
            Log.i("HTTP Request", "httpGet Request for : " + url);
            DefaultHttpClient client = new DefaultHttpClient();
            HttpGet get = new HttpGet(url);
            //get.setHeader("Connection", "keep-alive");

            HttpResponse response = client.execute(get);

            InputStream is = response.getEntity().getContent();
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(is));
            StringBuilder str = new StringBuilder();

            String line = null;

            while ((line = bufferedReader.readLine()) != null) {
                str.append(line + "\n");
            }
            return str.toString();
        } catch (Exception e) {
            Log.e("HTTP error", "Error in function httpGetResponse : "
                    + e.getMessage());
            return null;
        }
    }
于 2012-05-30T05:37:18.763 に答える
0

のステータス コードを取得してみてください。次に、( HTTP ステータス)responseと比較できます。

int responseCode=response.getStatusLine().getStatusCode()

于 2012-05-30T04:39:36.477 に答える