【发布时间】:2013-09-02 05:03:29
【问题描述】:
作为演示代码的工作原理,我试图在我的 oncreate 函数中获取一些 JSON 数据。我知道它应该在不同的线程上运行,但我想确保代码在将它移动到它自己的线程之前成功获取我的 JSON。
代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
/***************************************************/
final String TAG = "PostFetcher";
final String SERVER_URL = "http://kylewbanks.com/rest/posts";
// final String TAG = "PostsActivity";
// List<Post> posts;
try {
//Create an HTTP client
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(SERVER_URL);
//Perform the request and check the status code
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
try {
//Read the server response and attempt to parse it as JSON
Reader reader = new InputStreamReader(content);
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("M/d/yy hh:mm a");
Gson gson = gsonBuilder.create();
List<JsonObject> posts = new ArrayList<JsonObject>();
Log.e(TAG, "Checking: " + posts);
// posts = Arrays.asList(gson.fromJson(reader, JsonObject[].class));
content.close();
} catch (Exception ex) {
Log.e(TAG, "Failed to parse JSON due to: " + ex);
}
} else {
Log.e(TAG, "Server responded with status code: " + statusLine.getStatusCode());
}
} catch(Exception ex) {
Log.e(TAG, "Failed to send HTTP POST request due to: " + ex);
}
}
当我运行代码时,我收到倒数第二个异常消息:
Server responded with status code: 500
谁能告诉我我做错了什么?
【问题讨论】:
-
错误代码 500 是内部服务器错误...服务器崩溃..
-
出于好奇。为什么使用
HttpPost?这是过去 10 天内第 4 次或第 5 次我看到人们使用HttpPost通过一种或另一种 RESTful API 从服务器读取 JSON -
@Tseng:我是 Android 和 Java 编码的新手,我从教程中获得了代码。我只是稍微修改了一下
-
您的问题仍然存在吗?如果没有一个答案能解决您的问题,您可能需要提供更多信息
标签: android json request http-post