已解决并修改了代码。
我尝试使用java从烂番茄API中检索数据,这是一个简单的聊天机器人。将URI粘贴到浏览器中时,我的URI工作正常。但是我的代码没有返回相同的结果,我不确定我做错了什么。
第二个问题是我的JsonReader'无法解析为某种类型,我无法选择导入它。我一直在使用this guide!
代码如下:
String url = http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=queryText&page_limit=10&page=1&apikey=[]
try {
urlObj = new URL(url); //The URI to be used.
con = (HttpURLConnection) urlObj.openConnection(); //OPen a connection to the URI
//int responseCode = con.getResponseCode();
//System.out.println("\nSending 'GET' request to URL : " + url);
//System.out.println("Response Code : " + responseCode);
scan = new Scanner(urlObj.openStream());
String strResultSet = "";
while (scan.hasNext()) {
strResultSet+= scan.nextLine();
}
//System.out.println("StrJson"+strResultSet);
JSONObject JSONResultSet = new JSONObject(strResultSet);
JSONArray results = JSONResultSet.getJSONArray("movies");
JSONObject firstResult = results.getJSONObject(0);
movie.setTitle(firstResult.getString(KEY_TITLE));
movie.setId(firstResult.getString(KEY_ID));
con.disconnect();
scan.close();
答案 0 :(得分:0)
我不确定这是如何编译的。你似乎试图从你的" url"中获取一个InputStream。串。
您应该在HttpURLConnection上调用getConnection(),如con.getInputStream()
此外,您正在打印,但实际上没有检查responseCode。它可能并不总是表明成功。
以下是http://www.tbray.org/ongoing/When/201x/2012/01/17/HttpURLConnection
的一个很好的例子`void get(URL url){
//这没有网络IO HttpURLConnection conn = url.openConnection(); InputStream in; int http_status; 试试{
// this opens a connection, then sends GET & headers
in = conn.getInputStream();
// can't get status before getInputStream. If you try, you'll
// get a nasty exception.
http_status = conn.getResponseCode();
// better check it first
if (http_status / 100 != 2) {
// redirects, server errors, lions and tigers and bears! Oh my!
}
} catch(IOException e){ //发生了一件可怕的事情,如网络错误,或者你 //在HUC准备好之前,愚蠢地调用了getResponseCode()。 //基本上没有on" conn"现在工作,所以不要去 //在那里寻求帮助 }
尝试{ //现在您可以尝试使用数据 try_reading(IN); } catch(IOException e){ //网络IO狮子和老虎和熊!天啊! } finally { //像妈妈说的那样,保持良好的卫生习惯。 conn.disconnect(); } }`
答案 1 :(得分:0)
我使用scanner对象迭代结果集解决了问题。
scan = new Scanner(urlObj.openStream());
String strResultSet = "";
while (scan.hasNext()) {
strResultSet+= scan.nextLine();
}