作为我的Ant构建过程的一部分,我想通过HTTP Post将文件上传到网络服务器。 Ant仅附带HTTP Get任务。但是,Ant Contrib似乎有HTTP Post任务。问题是它没有任何基本身份验证(比如get do)或任何指定文件上传的方法(尽管文档说的是“rawFile”不是发行版的一部分)。
我的问题是:Ant Contrib的Post任务实际上是否支持我想要的东西,但是以一种非显而易见的方式(也许我必须手工完成)?或者还有其他方法可以做到这一点吗?
答案 0 :(得分:7)
我创建了一个Apache 2.0许可,功能齐全且易于使用的ant http任务。它使用代码java.net。*类,没有第三方库依赖。
它可以使用文件或内联实体进行POST / PUT,并且具有灵活的选项,用于设置所需的标头,身份验证和状态代码检查,以便在意外结果上构建失败。
http://missinglinkcode.wordpress.com/2011/03/15/apache-ant-http-task/
答案 1 :(得分:6)
答案 2 :(得分:4)
一个名为“Missing Link”的新的ant http任务已在Ant用户列表上公布,试一试= http://code.google.com/p/missing-link/
答案 3 :(得分:0)
有一堆基于jakarta commons http client的ant任务:
http://fikin-ant-tasks.sourceforge.net/
还提供带验证的http post任务。
在exec中使用ant时,您将在java vm之外打开一个新进程。 如果可能,应该避免IMO外部流程。
P.S。 :如果基本身份验证的fikin ant tasks / http帖子被破坏了 我更喜欢用jakarta commons写一个java类甚至我自己的任务,参见 jakarta commons http client,sample for basic authentication 2
因此它可以在与ant相同的vm中运行,也可以在分叉的java进程中运行 你可以通过谷歌找到jakarta commons httpclient文件上传的几个例子。
答案 4 :(得分:0)
Antelope中有一个http post任务,但它似乎不支持基本身份验证。 :/
答案 5 :(得分:0)
ant沙箱here中还有一个AntLib声称可以进行HTTP get和post。但是,它的身份验证也被破坏了。
答案 6 :(得分:0)
我为ant-contrib创建了一个补丁,为post任务添加了基本身份验证。希望它包含在主干中。在此期间,您可以从源代码构建它并自行应用补丁:
http://sourceforge.net/tracker/?func=detail&aid=3110414&group_id=36177&atid=416922
一旦你安装了新的ant-contrib.jar,只需在post任务中添加用户名和密码属性,它应该可以正常工作。文件上传,我不知道......