0

我得到了一个 Web API,它执行一个函数并将 JSON 响应发布回调用页面。

这是标准的 Web API 行为并且运行良好。

现在我想修改控制器,以便除了回发之外,用户还被重定向回调用网站上的页面,其中可以显示 Web API 调用的结果(以 JSON 格式)。

所以基本上我想:(1)服务器端将 JSON 中的结果回发到一个页面,并从 Web API 重定向到同一页面(2)在调用者的站点上,我想显示回发的 JSON。

我该怎么做呢?

我已经尝试了很多小时......例如:

            using (WebClient client = new WebClient())
            {
                client.Headers.Add("Content-Type", "text/json");
                client.Headers.Add("Accept", "text/json");
                try
                {
                    ErrorText = client.UploadString(redirectURL, "POST", JsonConvert.SerializeObject(orderresponse));
                    Response.Redirect(redirectURL);
                }
                catch (WebException err)
                {
                    ErrorText = err.Message;  //Todo - write to logfile
                }

            }
4

1 回答 1

0

Instead of doing the redirect on the server, instruct the client to do it by using the appropriate HTTP status code. For example:

public HttpResponseMessage Post(MyModel model)
{
    // handle the post
    MyResult result = ...;

    // redirect
    var response = Request.CreateResponse<MyResult>(HttpStatusCode.Moved, result);
    response.Headers.Location = new Uri("http://www.yourdomain.com/redirectURI");
    return response;
}
于 2013-11-14T16:03:24.950 回答