0

URL から json 文字列を取得しようとしていますが、次のコード行を使用すると、メソッドが null 文字列値を返します。

String jsonStr = getJsonStringFromURL(url);

これが私が使用している方法です:

public static String getJsonStringFromURL(String url)  {
    InputStream is = null; 
    String result = "";
    JSONObject jsonObject = null;

    try { 
        HttpClient httpclient = new DefaultHttpClient(); 
        HttpPost httppost = new HttpPost(url);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent(); 
    }
    catch (Exception e) { 
        return null;
    }

    try { 
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) { 
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();
    }
    catch(Exception e) { 
        return null;
    }
    return result;
}

URL変数を使用して、URLをブラウザにコピーして貼り付けると、json文字列が返されて表示されます。提案や助けをいただければ幸いです。

4

1 に答える 1

0

BufferReader問題は、閉じたときに結果に値を割り当てることです。それが null 値を取得する理由です。

割り当てる代わりにresult = sb.toString(); BufferReaderそれを閉じる前に割り当ての外側。

   BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8);
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
    }
    result = sb.toString();
    System.out.println(result);// It will print you the value
    is.close();

それが役に立てば幸い。

于 2013-03-27T16:20:02.437 に答える