Play framework 2.0 -调用WEB服务

 

#Play的WS API

 

有时候你需要在Play应用中调用其他HTTP服务。Play通过它的play.libs.WS库提供了支持,它可以提供一种方式进行异步HTTP调用。

play.libs.WS产生的调用应当返回Promise<Ws.Response>类型,同Play的异步机制,你可以稍后处理它。

 

1.生成HTTP调用

 

要产生一个HTTP请求,首先你要使用WS.url()指定URL,然后得到一个生成器来指定HTTP选项,例如设置头等。

最后调用与你想要的HTTP相关的方法:

Promise<WS.Response> homePage = WS.url("http://mysite.com").get();
 

或者:

 Promise<WS.Response> result = WS.url("http://localhost:9001").post("content");
 

2.获取HTTP请求结果

 

调用是异步的,你需要把它当作Promise<WS.Response>来取得实际内容。你可以组织多个

Promise最终以一个可以直接被Play服务器处理的Promise<Result>结束。

 import play.libs.F.Function;
	import play.libs.WS;
	import play.mvc.*;

	public class Controller extends Controller {

	 public static Result feedTitle(String feedUrl) {
	    return async(
		WS.url(feedUrl).get().map(
		    new Function<WS.Response, Result>() {
			public Result apply(WS.Response response) {
			    return ok("Feed title:" + response.asJson().findPath("title"));
			}
		    }
		)
	    );
	 }
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值