Webサーバーが404を返す限り、うまく機能するHTTPリクエストを作成するためにデータバインダーディスパッチを使用しています.
要求が失敗した場合、Web サーバーは 403 ステータス コードを返し、詳細なエラー メッセージを応答本文で XML として提供します。
(403 に関係なく) xml 本文を読み取る方法、たとえば、ディスパッチで 403 エラーをすべて無視するにはどうすればよいですか?
私のコードは次のようになります。
class HttpApiService(val apiAccount:ApiAccount) extends ApiService {
val http = new Http
override def baseUrl() = "http://ws.audioscrobbler.com/2.0"
def service(call:Call) : Response = {
val http = new Http
var req = url(baseUrl())
var params = call.getParameterMap(apiAccount)
var response: NodeSeq = Text("")
var request: Request = constructRequest(call, req, params)
// Here a StatusCode exception is thrown.
// Cannot use StatusCode case matching because of GZIP compression
http(request <> {response = _})
//returns the parsed xml response as NodeSeq
Response(response)
}
private def constructRequest(call: Call, req: Request, params: Map[String, String]): Request = {
val request: Request = call match {
case authCall: AuthenticatedCall =>
if (authCall.isWriteRequest) req <<< params else req <<? params
case _ => req <<? params
}
//Enable gzip compression
request.gzip
}
}