@Override
protected Void doInBackground(String... params) {
String url = params[0];
Log.i("MyActivity", "Before geting json from URL");
// getting JSON string from URL
JSONObject json = getJSONFromUrl(url);
Log.i("MyActivity", "After geting json from URL");
//parsing json data
parseJson(json);
return null;
}
}
public JSONObject getJSONFromUrl(String url) {
InputStream is = null;
JSONObject jObj = null;
String json = null;
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
Log.i("MyActivity", "Before httppost "+url);
HttpPost httpPost = new HttpPost(url);
Log.i("MyActivity", "After httppost");
HttpResponse httpResponse = httpClient.execute(httpPost);
Log.i("MyActivity", "After httpResponse");
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
Log.i("MyActivity", "Before json getting");
json = sb.toString();
Log.i("MyActivity", "After json getting");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
我认为我在发布电话和提交回复后会解决问题。请帮助我。在这里,我使用了记录器来跟踪。 在这里,我已将json url指定为https://api.myjson.com/bins/1wpva。
我在这里发布代码。
07-09 17:11:54.128 9796-9796/? I/art﹕ Not late-enabling -Xcheck:jni (already on)
07-09 17:11:54.310 9796-9812/com.javatechig.feedreader D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true
07-09 17:11:54.314 9796-9796/com.javatechig.feedreader D/﹕ HostConnection::get() New Host Connection established 0xb42e9e80, tid 9796
07-09 17:11:54.391 9796-9811/com.javatechig.feedreader I/MyActivity﹕ Before geting json from URL
07-09 17:11:54.391 9796-9811/com.javatechig.feedreader I/MyActivity﹕ Before httppost https://api.myjson.com/bins/1wpva
07-09 17:11:54.392 9796-9811/com.javatechig.feedreader I/MyActivity﹕ After httppost
07-09 17:11:54.413 9796-9796/com.javatechig.feedreader D/Atlas﹕ Validating map...
07-09 17:11:54.477 9796-9812/com.javatechig.feedreader D/﹕ HostConnection::get() New Host Connection established 0xb43d70d0, tid 9812
07-09 17:11:54.585 9796-9812/com.javatechig.feedreader I/OpenGLRenderer﹕ Initialized EGL, version 1.4
07-09 17:11:54.608 9796-9812/com.javatechig.feedreader D/OpenGLRenderer﹕ Enabling debug mode 0
07-09 17:11:54.631 9796-9812/com.javatechig.feedreader W/EGL_emulation﹕ eglSurfaceAttrib not implemented
07-09 17:11:54.631 9796-9812/com.javatechig.feedreader W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xb431f740, error=EGL_SUCCESS
07-09 17:11:54.902 9796-9811/com.javatechig.feedreader W/System.err﹕ javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
07-09 17:11:54.902 9796-9811/com.javatechig.feedreader W/System.err﹕ at com.android.org.conscrypt.SSLNullSession.getPeerCertificates(SSLNullSession.java:104)
07-09 17:11:54.902 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:98)
07-09 17:11:54.902 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:393)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:170)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
07-09 17:11:54.903 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity.getJSONFromUrl(FeedListActivity.java:103)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:82)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:64)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:292)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
07-09 17:11:54.904 9796-9811/com.javatechig.feedreader E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
Process: com.javatechig.feedreader, PID: 9796
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
at org.json.JSONTokener.nextValue(JSONTokener.java:94)
at org.json.JSONObject.<init>(JSONObject.java:156)
at org.json.JSONObject.<init>(JSONObject.java:173)
at com.javatechig.feedreader.FeedListActivity.getJSONFromUrl(FeedListActivity.java:129)
at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:82)
at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:64)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
记录错误。
def make_photos
photos.size.upto(6).each { photos.build }
end