我正在尝试使用以下行来获取API响应,但它不适用于我。 请帮帮我。
Groovy ver = 2.4.15 OS = Windows 7
@Grab(group='org.codehaus.groovy.modules.http-builder',module='http-builder',version='0.7.1')
导入groovyx.net.http.HTTPBuilder
答案 0 :(得分:0)
正如评论中所提到的,我认为最好的起点是运行你的脚本,并打开以下标志:
~> groovy -Dgroovy.grape.report.downloads=true <yourscript>
这应该会给你一些记录,说明葡萄分辨率正在做什么,并希望它在尝试从失败时下载文件的位置。
有关葡萄分辨力学的概述,请参阅groovy documentation on grapes。
我的猜测是,groovy正在尝试多个解析器(即maven central,jcenter等),其中一个是早期失败,即使后者有人工制品。在这种情况下,解决方案引擎自然应该继续尝试,直到它找到一个工作的工件,但我之前看到过这样的事情。
要修改分辨率顺序和行为,您应该查看文件:
<your user home dir>/.groovy/grapeConfig.xml
其中,如果文件不存在,groovy使用以下默认数据:
<ivysettings>
<settings defaultResolver="downloadGrapes"/>
<resolvers>
<chain name="downloadGrapes" returnFirst="true">
<filesystem name="cachedGrapes">
<ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
<artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/>
</filesystem>
<ibiblio name="localm2" root="file:${user.home}/.m2/repository/" checkmodified="true" changingPattern=".*" changingMatcher="regexp" m2compatible="true"/>
<!-- todo add 'endorsed groovy extensions' resolver here -->
<ibiblio name="jcenter" root="https://jcenter.bintray.com/" m2compatible="true"/>
<ibiblio name="ibiblio" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings>
这里有两点需要注意:
returnFirst
属性。解析引擎将逐个尝试解析器并返回此特定工件的第一个命中。如果我的预感是正确的,那么这不能正常工作并且早期的解析器失败并且不会给后来的解析器提供解析工件的机会。 所以,长话短说:打开调试,看看是否有任何效果。
然后修改或创建grapeConfig.xml
文件,并且:
ibiblio
元素的顺序以更改分辨率顺序ibiblio
节点)(并在链中首先添加它以确保其中一个不首先失败)。 returnFirst
标记来查看是否将其设置为false可以解决您的问题