0

私のアプリでは、以下のようにfbグラフのAPI URLからデータを取得しようとしています

URL fbmsg = new URL("https://graph.facebook.com/"+FbPostId()+"?access_token="+TOKEN+"");
            URLConnection yc = fbmsg.openConnection();

            BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));

            String inputLine;

            String s = "";

            while ((inputLine = in.readLine()) != null)

            System.out.println(inputLine);
            //Log.d(TAG, "getPostId trace getFbPostId " + inputLine);   
            s = s + inputLine + "n";
            //Log.d(TAG, "getPostId trace getFbPostId " + s);   
            in.close();
            //System.out.println(s);

            JSONObject json = new JSONObject(inputLine);
            //JSONObject message = json.getJSONObject("message");
           String fbmessage = json.getString("message");
            System.out.println( "message: " + fbmessage );

出力をjson形式で取得していますが、メッセージを読み取ることができず、この行でエラーが発生し、JSONObject json = new JSONObject(inputLine); nullpointer例外が発生しています。以下は私のログです

01-28 14:05:56.384: E/FBUtils(5894): getPostId
01-28 14:05:56.384: E/FBUtils(5894): java.lang.NullPointerException
01-28 14:05:56.384: E/FBUtils(5894):    at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
01-28 14:05:56.384: E/FBUtils(5894):    at org.json.JSONTokener.nextValue(JSONTokener.java:94)
01-28 14:05:56.384: E/FBUtils(5894):    at org.json.JSONObject.<init>(JSONObject.java:154)
01-28 14:05:56.384: E/FBUtils(5894):    at org.json.JSONObject.<init>(JSONObject.java:171)
01-28 14:05:56.384: E/FBUtils(5894):    at org.appright.myneighborhood.utils.FBUtils.doInBackground(FBUtils.java:104)
01-28 14:05:56.384: E/FBUtils(5894):    at org.appright.myneighborhood.utils.FBUtils.doInBackground(FBUtils.java:1)

どんな助けでも大歓迎です。

4

1 に答える 1

1

InputStream からデータを読み取るために String の代わりに StringBuilder を使用し、InputStream からデータを読み取ろうとします。

StringBuilder inputLine = new StringBuilder();
String s;
String NL = System.getProperty("line.separator");
while ((s = in.readLine()) != null) {
   inputLine.append(s + NL);
}
in.close();
JSONObject json = new JSONObject(inputLine.toString());
于 2013-01-28T09:03:06.343 に答える