如何在Web API中将HttpResponse设置为HttpResponseMessage

时间:2017-02-10 09:26:09

标签: c# asp.net-web-api

我有一个使用API托管的asp.net web OWIN应用程序。 Web API应用程序使用依赖于System.Web的外部库,并将其响应写入System.Web.Response对象。我已经将一个虚拟对象设置为HttpContext.Current,然后我希望外部库将响应设置为HttpRequest。然后,我需要知道如何将结果从HttpRequest传输到HttpRequestMessage,以便网络API方法可以处理结果。

以下是一些示例代码:

public HttpResponseMessage GetTest()
{
    HttpResponseMessage responseMessage = new HttpResponseMessage();

    HttpResponse httpResponse = new HttpResponse(new StreamWriter(new MemoryStream()));
    httpResponse.Write("From HttpResponse");

    return responseMessage;
}

我使用HttpResponse.Write()方法编写了一些文字,现在我需要将结果从HttpResponse移到HttpResponseMessage

2 个答案:

答案 0 :(得分:0)

我相信你要找的是IHttpActionResult,请看链接:     https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action-results

以下是如何创建HttpResponseMessage的示例:

public IHttpActionResult Get()
{
   HttpResponseMessage responseMessage = "From HttpResponse";
   return new ResponseMessageResult(responseMessage);
}

答案 1 :(得分:0)

尝试:

return Request.CreateResponse(HttpStatusCode.OK, "{data to return here}")