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

C# 如何在Web API中将HttpResponse设置为HttpResponseMessage,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个asp.net webAPI应用程序,它使用OWIN托管。webAPI应用程序使用依赖于System.web的外部库,并将其响应写入System.web.response对象。我已经将一个虚拟对象设置为HttpContext.Current,之后,我希望外部库将响应设置为HttpRequest。然后我需要知道如何将结果从HttpRequest传输到HttpRequestMessage,以便webAPI方法可以处理结果 以下是一些示例代码: public HttpResponseMessa

我有一个asp.net web
API
应用程序,它使用
OWIN
托管。web
API
应用程序使用依赖于
System.web
的外部库,并将其响应写入System.web.response对象。我已经将一个虚拟对象设置为
HttpContext.Current
,之后,我希望外部库将响应设置为
HttpRequest
。然后我需要知道如何将结果从
HttpRequest
传输到
HttpRequestMessage
,以便web
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

我相信您要查找的是IHttpActionResult请参阅链接:

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

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


也许你需要发布一些代码。可能只是我。我仍然无法得到你想要的。在您的问题中,您谈到了将结果从请求传输到HttpResponseMessage。结果“from HttpResponse”设置在HttpResponse对象上,但web api使用HttpResponseMessage向客户端提供响应。因此,我需要知道如何从HttpResponse读取响应并将其设置为HttpResponseMessage。是否使用MVC?如果需要,我们可以使用MVC,但我们不能使用System.Web,因为我们的应用程序使用OWIN托管,而不是IIS托管。显然,如果请求失败,请返回相应的状态代码,而不是“OK”
return Request.CreateResponse(HttpStatusCode.OK, "{data to return here}")