我正在使用:
<exec executable="cmd">
<arg line="${argLine}" />
</exec>
argLine
<property name="argLine" value="http://127.0.0.1:/product/findSameStyleSku.json?skuId=305&style=120662"/>
有2个参数,我使用&
转义&
符号
但只能打开http://127.0.0.1/product/findSameStyleSku.json?skuId=305
style
param丢失了
简而言之,我想要运行
<target name="111test">
<exec executable="cmd" output="e:/test.txt">
<arg line="/c start '' 'http://127.0.0.1/product/findSameStyleSku.json?skuId=305&%3bstyle=120662'" />
</exec>
</target>
2012-05-23更新
是的,Windows系统
我将代码更改为
<target name="111test">
<exec executable="cmd" output="e:/test.txt">
<arg value="/c" />
<arg value="start" />
<arg value="" />
<arg value="http://127.0.0.1/product/findSameStyleSku.json?skuId=305&%3bstyle=120662" />
</exec>
</target>
运行蚂蚁
仅打开
http://127.0.0.1/product/findSameStyleSku.json?skuId=305
我将“&%3b
”更改为“&
”
也只是打开
http://127.0.0.1/product/findSameStyleSku.json?skuId=305
但在cmd中,我使用
start "" "http://127.0.0.1/product/findSameStyleSku.json?skuId=305&style=120662"
可以打开http://127.0.0.1/product/findSameStyleSku.json?skuId=305&style=120662
答案 0 :(得分:1)
不完全了解它试图打开的内容。是真的试图用***?skuId=305
打开一个网址,还是你试图说它试图打开你给它的网址,但不包括分号?
如果您说它不在URL的最后部分,您应该了解分号不能是您发送的实际网址的一部分。它们是reserved,必须经过特殊编码。
确保分号甚至可以在那里。当您执行 GET 请求时,您拥有基本URL,然后在该URL之后出现问号。之后,您将传递一系列参数传递给URL,每个参数由&符号分隔。在您的情况下,您似乎想要向URL发送请求:
http://127.0.0.1:/product/findSameStyleSku.json
使用以下两个参数:
skuId
= 305
style
= 120662
所以,看起来分号是伪造的。否则,您传递参数 ;style
而不是 style
。而且,这似乎不正确。
如果您确定分号确实存在,请尝试使用%3b
替换网址中的分号:
<property name="argLine" value="http://127.0.0.1:/product/findSameStyleSku.json?skuId=305&%3bstyle=120662"/>
,对不起,它没有正常工作,我更新了我的问题 - 感觉
不幸的是,由于这是在Windows机器上,并且是在您的机器上本地运行的东西,我不能自己运行测试。
但是,根据帖子的第一部分,您尝试运行以下命令:
C> cmd http://127.0.0.1:/product/findSameStyleSku.json?skuId=305&style=120662
稍后在你的帖子中,你说你想要跑:
C> cmd /c start '' 'http://127.0.0.1/product/findSameStyleSku.json?skuId=305&%3bstyle=120662'
第一个肯定不会从命令行工作。第二个吗?
我使用这个在我当前的计算机上做了一些测试:
<property name="argLine"
value="http://etzahaim.org/index.php?option=com_content&task=blogcategory&id=15&Itemid=34"/>
<exec executable="curl">
<arg value="${argLine}"/>
<arg value="--include"/>
<arg value="--output"/>
<arg value="curl.out"/>
</exec>
这是获取URL的curl
命令。此URL也使用GET方法,因此它在URL中也有一个问号和一些星号。这对我有用。
尝试从<arg line='start' '' 'http://...>
切换到使用<arg line>
,看看是否有帮助:
<target name="111test">
<exec executable="cmd" output="e:/test.txt">
<arg value="/c"/>
<arg value="start"/>
<arg value=""/>
<arg value="${argline}" />
</exec>