也許你可以幫助我。我正在開發一個Android應用項目,該項目調用了返回JSON數據的Rotten Tomatoes API。但是,每當我運行我的代碼時,應用程序崩潰。給我的問題的特定位代碼是httpClient.execute(httpPost);httpClient.execute(httpPost)導致崩潰(Android 4.1)
傳遞給方法的url字符串很好,並且在我的瀏覽器中輸入它時會返回正確的數據,所以我知道這不是問題。我有點不知所措。我從來沒有遇到過HttpClient的問題,儘管過去我只使用過XML,從來沒有JSON。
我一直在努力與此一段時間了。如果有人有任何見解,將不勝感激。
public JSONObject getJSON(String url) {
//Make HTTP Request
try {
//defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
//Log.d("RunTest", url);
HttpResponse httpResponse = httpClient.execute(httpPost); // THIS LINE CAUSES APPLICATION TO CRASH
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException uee) {
Log.d("Exceptions", "UnsupportedEncodingException");
uee.printStackTrace();
} catch (ClientProtocolException cpe) {
Log.d("Exceptions", "ClientProtocolException");
cpe.printStackTrace();
} catch (IOException ioe) {
Log.d("Exceptions", "IOException");
ioe.printStackTrace();
}
10-27 02:52:44.484: I/Choreographer(627): Skipped 147 frames! The application may be doing too much work on its main thread.
10-27 02:52:44.704: W/dalvikvm(627): threadid=12: thread exiting with uncaught exception (group=0x40a13300)
10-27 02:52:44.724: E/AndroidRuntime(627): FATAL EXCEPTION: AsyncTask #1
10-27 02:52:44.724: E/AndroidRuntime(627): java.lang.RuntimeException: An error occured while executing doInBackground()
10-27 02:52:44.724: E/AndroidRuntime(627): at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-27 02:52:44.724: E/AndroidRuntime(627): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.lang.Thread.run(Thread.java:856)
10-27 02:52:44.724: E/AndroidRuntime(627): Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=api.rottentomatoes.com/api/public/v1.0/lists/movies/box_office.json
10-27 02:52:44.724: E/AndroidRuntime(627): at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:591)
10-27 02:52:44.724: E/AndroidRuntime(627): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
10-27 02:52:44.724: E/AndroidRuntime(627): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10-27 02:52:44.724: E/AndroidRuntime(627): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-27 02:52:44.724: E/AndroidRuntime(627): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-27 02:52:44.724: E/AndroidRuntime(627): at com.example.rottentomatoesclient.JSONParser.getJSON(JSONParser.java:39)
10-27 02:52:44.724: E/AndroidRuntime(627): at com.example.rottentomatoesclient.MoviesActivity$getMovieList.doInBackground(MoviesActivity.java:90)
10-27 02:52:44.724: E/AndroidRuntime(627): at com.example.rottentomatoesclient.MoviesActivity$getMovieList.doInBackground(MoviesActivity.java:1)
10-27 02:52:44.724: E/AndroidRuntime(627): at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-27 02:52:44.724: E/AndroidRuntime(627): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-27 02:52:44.724: E/AndroidRuntime(627): ... 5 more
10-27 02:52:44.774: W/ActivityManager(148): Force finishing activity com.example.rottentomatoesclient/.MoviesActivity
告訴我們您的LogCat錯誤 – juned
我從來沒有得到任何LogCat錯誤。沒有任何異常會引發。 – Chris
你給了'Internet'權限嗎? – Praveenkumar