Java yql:服务器返回了URL的HTTP响应代码:400
如果我从前端这样做,下面的工作很好Java yql:服务器返回了URL的HTTP响应代码:400,java,yql,Java,Yql,如果我从前端这样做,下面的工作很好 var symbol = symbolsarray[i].trim(); var query = "select * from yahoo.finance.quotes where symbol = " + "'" + symbol + "'"; var yql = "http://query.yahooapis.com/v1/public/yql?q=" + escape(query) + "&format=json&diagno
var symbol = symbolsarray[i].trim();
var query = "select * from yahoo.finance.quotes where symbol = " + "'" + symbol + "'";
var yql = "http://query.yahooapis.com/v1/public/yql?q=" + escape(query) + "&format=json&diagnostics=false&env=store://datatables.org/alltableswithkeys&callback=?";
我已经尝试过用这种方式在java中实现同样的功能
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class JSONfunctions {
public static void main(String args[]) {
getQuote();
}
private static Double getQuote() {
try {
// URL url = new
// URL("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20%3D%20%27%255EHSI%27&format=json&diagnostics=false&env=store://datatables.org/alltableswithkeys&callback=jQuery1830024542473256587982_1445857302444");
String symbol = "%5EAORD";
String query = "select * from yahoo.finance.quotes where symbol = "
+ "'" + symbol + "'";
String yql = "http://query.yahooapis.com/v1/public/yql?q="
+ query
+ "&format=json&diagnostics=false&env=store://datatables.org/alltableswithkeys&callback=?";
URL url = new URL(yql);
BufferedReader reader = new BufferedReader(new InputStreamReader(
url.openStream()));
String line = reader.readLine();
System.out.println(line);
reader.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}
}
但我得到的回应是
Server returned HTTP response code: 400 for URL: http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol = '%5EAORD'&format=json&diagnostics=false&env=store://datatables.org/alltableswithkeys&callback=?
尝试对查询进行编码,以便在url中使用
String yql = "http://query.yahooapis.com/v1/public/yql?q="
+ java.net.URLEncoder.encode(query, "UTF-8")
+ "&format=json&diagnostics=false&env=store://datatables.org/alltableswithkeys&callback=?";
您的查询包含空格,因此我怀疑这可能是一个解决方案。谢谢您,现在我得到了/**/yql\u无效的\u回调({“error”:{“lang”:“en-US”,“description”:“无效的JSON回调参数yql\u无效的\u回调”});查看参数
回调
。您发送的值“”不正确。这正是错误消息告诉你的。我也收到了同样的错误。这个查询总是将callback设置为“”,但似乎一夜之间就停止了工作。结果表明,我的问题是因为雅虎的服务关闭了。