§內容協商
內容協商是一種機制,可以提供同一資源 (URI) 的不同表示形式。它很有用,例如用於撰寫支援多種輸出格式 (XML、JSON 等) 的 Web 服務。伺服器驅動的協商基本上使用 Accept*
要求標頭來執行。您可以在 HTTP 規範 中找到更多有關內容協商的資訊。
§語言
您可以使用 play.mvc.Http.RequestHeader#acceptLanguages
方法取得要求的可接受語言清單,此方法會從 Accept-Language
標頭中擷取清單,並根據其品質值對清單進行排序。當呼叫 play.i18n.MessagesApi#preferred(Http.RequestHeader)
以判斷要求的語言時,Play 會使用此方法,因此此方法會自動使用最佳語言 (如果您的應用程式支援,否則會使用應用程式的預設語言)。
§內容
同樣地,play.mvc.Http.RequestHeader#acceptedTypes
方法提供要求的可接受結果 MIME 類型的清單。它會從 Accept
要求標頭中擷取它們,並根據它們的品質因子對它們進行排序。
你可以使用 play.mvc.Http.RequestHeader#accepts
方法測試給定的 MIME 類型是否可接受目前的請求
public Result list(Http.Request request) {
List<Item> items = Item.find.all();
if (request.accepts("text/html")) {
return ok(views.html.Application.list.render(items));
} else {
return ok(Json.toJson(items));
}
}
在此文件檔中發現錯誤?此頁面的原始碼可以在 這裡 找到。在閱讀 文件檔指南 後,請隨時貢獻一個 pull request。有問題或建議要分享?前往 我們的社群論壇 與社群開始對話。