Web API 2返回text / html响应无效

时间:2015-02-14 08:41:55

标签: f# asp.net-web-api asp.net-web-api2

我有一个较旧的HTTP API,我需要用一个用web api 2编写的新API替换。我正在构建它时通过新的代理旧的。例如,/ user / 1234如果在新服务器上实现将从中提供,但如果在新服务器上找不到,则将从旧服务器代理。

现在,它适用于大多数响应类型(application / json,text / plain,text / xml),但它不会返回代理的HTML响应。以下是执行此操作的F#代码:

let msg = new HttpRequestMessage(x.Request.Method, x.Request.RequestUri.PathAndQuery)
if x.Request.Method <> HttpMethod.Get then msg.Content <- x.Request.Content
let req = async {
    let client = new HttpClient()
    client.BaseAddress <- new Uri("http://old.api.url")
    let! response = client.SendAsync(msg) |> Async.AwaitTask
    response.EnsureSuccessStatusCode() |> ignore
    return response
}
Async.RunSynchronously(req)

它只返回从旧API接收的HttpResponseMessage。它适用于application / json和text / plain(这是旧版本大多数时候返回的),但即使它收到正确的HTML响应(在调试器中看到),它也不会返回它。我收到的回复总是来自之前的请求。所以如果我得到一个/ foo / bar请求的json响应,如果我然后调用/ foo / baz有一个text / html响应,它仍然会从/ foo / bar返回响应。

有什么建议吗?

0 个答案:

没有答案