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"));
			}
		    }
		)
	    );
	 }
	}
發佈了15 篇原創文章 · 獲贊 0 · 訪問量 2693
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章