无论我怎么努力,我似乎无法弄清楚如何使用USDA REST API。我已经采用了大约6种不同的在线教程,介绍了如何使用REST API,所有这些都不适用于这个特定的API(我确定它有点小而我错过但是我&# 39;浪费了无数个小时做/观看教程但没有成功。)
以下是其API的链接: http://api.nal.usda.gov/ndb/reports?api_key=(my
这是我在JavaScript中输入的内容:
xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.nal.usda.gov/ndb/reports/", true);
console.log(xhr.status);
API说要在参数中传递你的API KEY,但这对我没有意义,因为我读过的每一个教程都没有解释如何将KEY作为参数传递...如果有人会介意花一点时间来编写访问此API所需的代码,我将非常感激。
更新我还尝试了以下JQuery方法:
$.get(
"http://api.nal.usda.gov/ndb/reports",
{
"api_key": "API KEY",
"ndbno": "01009"
},
function(data) {
console.log(data);
}
);
没有运气。
更新2:在离开JQuery示例约5分钟后,我在Chrome控制台中收到错误消息:
XMLHttpRequest无法加载http://localhost:3000 API KEY)& ndbno = 01009。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://firebase.google.com/docs/reference/ios/firebaseanalytics/interface_f_i_r_app'因此不允许访问。响应的HTTP状态代码为403。
最终更新:显然我的ISP出现了问题。需要处理的是:(
答案 0 :(得分:2)
您引用的文档有一个示例请求网址:
http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=DEMO_KEY
您只需要替换ndbno,type,format和api_key值(" ="之后的位)。例如,如果您的API密钥是12345,则需要更改它:
http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=12345
一个完整的,虽然可怜的",实施将是:
var apiKey = "DEMO_KEY";
var ndbno = "01009";
var type = "b";
var format = "json";
var url = "http://api.nal.usda.gov/ndb/reports/?ndbno=" + ndbno + "&type=" + type + "&format=" + format + "&api_key=" + apiKey;
$.get(url, function( data ) {
alert( "Data Loaded: " + JSON.stringify(data) );
});
答案 1 :(得分:0)
使用' DEMO_KEY'由USDA提供我可以使用以下代码粘贴到HTML文件中获取JSON结果(基于您与@BlakeH正在进行的讨论中的代码):
javac^
-cp "C:\eclipse\selenium-2.53.0\selenium-java-2.53.0.jar;C:\eclipse\selenium-2.53.0\libs\*"^
src\automationFramework\*.java^
-d classes/
jar cvfe udxautomator.jar BasicTestCase classes\automationFramework\*.class
java -cp . BasicTestCase
此代码未遇到CORS问题。
在过去的24小时内,您是否有机会提交超过1000个请求?