我是Android和Java開發新手。我會高度讚賞,如果有人可以指導我:Json響應未打印
我的代碼:
public class TokenPost extends MainActivity {
public TokenPost(MainActivity mainActivity) {
// TODO Auto-generated constructor stub
}
public void postData() {
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
try{
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.traxbuddy.com/confirm.json");
Log.i("Inside TokenPost", "Inside TokenPost");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(3);
//String foo= "id_token="+token+"&lat="+59.8944400+"&lng="+30.2641700;
//nameValuePair1.add(new BasicNameValuePair("id_token", token));
Log.i("Mobile Token", "Mobile Token" + mtokenno);
nameValuePair.add(new BasicNameValuePair("mobile", "919876543285"));
nameValuePair.add(new BasicNameValuePair("imei", "911212345123891"/*imeicontact*/));
nameValuePair.add(new BasicNameValuePair("stoken", mtokenno));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
Log.i("Response from Http Post Request", "Response from Http Post Request: "+ response);
System.out.println("Response: " +response.toString());
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(response.toString());
String prettyJsonString = gson.toJson(je);
System.out.println(je);
System.out.println(prettyJsonString);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder = new StringBuilder();
for (line = null; (line = reader.readLine()) != null;) {
builder.append(line).append("\n");
System.out.println(line); }
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}//postData
}
,我在日誌中我得到的輸出是:
10-07 13:28:49.803: I/Inside TokenPost(1312): Inside TokenPost
10-07 13:28:49.803: I/Mobile Token(1312): Mobile Tokennull
10-07 13:29:02.573: I/Response from Http Post Request(1312): Response from Http Post Request: org.apache.http.message.[email protected]
10-07 13:29:02.573: I/System.out(1312): Response: [email protected]
10-07 13:29:02.603: I/System.out(1312): "[email protected]"
10-07 13:29:02.603: I/System.out(1312): "[email protected]"
10-07 13:29:02.603: W/System.err(1312): java.lang.NullPointerException
10-07 13:29:02.613: W/System.err(1312): at com.traxbuddy.trax.TokenPost$1.run(TokenPost.java:68)
10-07 13:29:02.613: W/System.err(1312): at java.lang.Thread.run(Thread.java:841)
,我應該得到的輸出(我通過使用CURL):
{"atoken":"11528aa467271341a624f362ee7dd268b0366016","utoken":"c6205d52218f6d466
e2c4bac3ecc585ddab9db96"}
在這方面的任何幫助將不勝感激。
非常感謝您的回覆更換
。我嘗試了上述更改,但得到以下異常: 10-07 15:18:09.183:W/System.err(1558):java.lang.IllegalArgumentException:HTTP實體可能不爲空 10-07 15 :18:09.193:W/System.err(1558):\t at org.apache.http.util.EntityUtils.toString(EntityUtils.java:110) – user1903022 2014-10-07 19:22:01
立即執行後,你可以添加'Log.e(「resp .length「,」「+ response.getEntity()。getContentLength());' - 這顯示了什麼。 – ashoke 2014-10-07 20:32:11
它返回:W/System.err(2274):java.lang.NullPointerException – user1903022 2014-10-07 20:49:19