当前位置: 首页 > 知识库问答 >
问题:

Groovy JsonSlurper从URL获取JSON数据。错误:找不到API包“urlfetch”或调用“Fetch()”

苏胤
2023-03-14

我的Groovy脚本连接到bitBuck API并获取分支详细信息。这是脚本:

import groovy.json.JsonSlurper
def json = new JsonSlurper().parseText( new URL( 'https://bitbucket.org/api/1.0/repositories/repo_name/repo_name.git/branches/' ).text )

但这抛出以下错误:

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.
at Script1.run(Script1.groovy:2)

但是当我在浏览器上复制粘贴URL时,我能够看到JSON数据。如何使用Groovy从此URL获取JSON数据?

共有3个答案

郜彬
2023-03-14
import groovy.json.JsonSlurper
def json = new JsonSlurper().parseText( new URL( 'https://jsonplaceholder.typicode.com/users' ).text )

json.each { println it }

我能够使用此代码来解析 JSON URL 数据。

钮巴英
2023-03-14

它可以在浏览器上工作,因为您已经通过了身份验证。如果您希望它从命令行/脚本工作,您还需要添加身份验证部分。

郭修平
2023-03-14

身份验证代码

import groovy.json.JsonSlurper
String apiurl1 = "https://bitbucket.org/api/1.0/repositories/repo_name/repo_name.git/branches/"
String apiurl2 = "https://bitbucket.org/api/1.0/repositories/repo_name2/repo_name2.git/branches/"
String username = "username" 
String password = "password"
String userpass = username + ":" + password; 
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());

URL url = apiurl1.toURL();
URLConnection connection = url.openConnection();
connection.setRequestProperty("Authorization",basicAuth);
InputStream inputStream = connection.getInputStream();
def names = new groovy.json.JsonSlurper().parseText(inputStream.text);
connection.disconnect();
 类似资料:
  • 当我使用UrlFetchApp将电子表格导出为PDF时,始终会收到404请求的entity not found响应。如果我将相同的URL放入浏览器,PDF下载将正确启动。 要使这个示例脚本正常工作,我可以做些什么? 下面是一个示例PDF导出URL,用于简单的共享(只读)电子表格:https://docs.google.com/spreadsheets/d/133KPZyxAATG3AAY9iCSF

  • 我使用以下代码: 你能帮我吗?

  • 问题内容: 我正在尝试在GAE云中托管的GAE应用程序中调用Google服务: 执行抛出: 。 有任何想法吗?我完全迷路了… 问题答案: 您可以使用其他http客户端吗?如推荐这里: 还是使用URLFetchService呢? 根据此博客文章,您需要: “定制连接管理器,它将最终请求转换为URL提取服务,然后将响应反馈回HttpClient。”

  • 我们的中央银行以多种方式提供货币汇率。例如,一个货币日期很容易获得:http://api.nbp.pl/api/exchangerates/rates/a/usd/2020-08-20?format=Json(它以简单的大括号开始{作为典型的Json) 但是另一个表-每个货币日期:http://api.nbp.pl/api/exchangerates/tables/a/2020-08-20?for

  • 我需要拍摄一个div的屏幕截图,并需要将其发送到服务器(Java)进行存储。我公司项目中的现有代码使用Html2Canvas。js获取元素的位置(div,body…)返回base64数据URI,它工作正常,但在Chrome中冻结了应用程序。因此,我正在寻找其他解决方案,并从堆栈溢出中找到以下代码。 在这里,我得到的网址是Blob-Url(blob:https://fiddle.jshell.net

  • 问题内容: 几天以来,我一直在为我的实习机会创建一个React Web应用程序,但是遇到了CORS错误。我正在使用最新版本的reactJS,并将其放在中,以下是用于获取的代码: 抱歉,由于公司规定,我无法发布该API的网址,但是,可以确认该API后端中没有CORS设置。 但是,在mozilla上运行时遇到以下错误 和 如果在chrome上运行,则会出现以下错误 和 和 另一件事是,我可以在浏览器中