'How to set HttpResponse to HttpResponseMessage in Web API
I have a asp.net web API
application hosted using OWIN
. The web API
application uses an external library which depends on System.Web
and writes its response on System.Web.Response object. I have set a dummy object to HttpContext.Current
and after that the I expect the external library would set the response at HttpRequest
. Then I need to know how I could transfer the result from HttpRequest
to HttpRequestMessage
so that the web API
method could process the result.
Here is some sample code:
public HttpResponseMessage GetTest()
{
HttpResponseMessage responseMessage = new HttpResponseMessage();
HttpResponse httpResponse = new HttpResponse(new StreamWriter(new MemoryStream()));
httpResponse.Write("From HttpResponse");
return responseMessage;
}
I have written some text using the HttpResponse.Write()
method, now I need to move the result from HttpResponse
to HttpResponseMessage
.
Solution 1:[1]
I believe what you are looking for is IHttpActionResult see link: https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action-results
Here is an example of how to create a HttpResponseMessage:
public IHttpActionResult Get()
{
HttpResponseMessage responseMessage = "From HttpResponse";
return new ResponseMessageResult(responseMessage);
}
Solution 2:[2]
Try:
return Request.CreateResponse(HttpStatusCode.OK, "{data to return here}")
Solution 3:[3]
You can try like below:
if (yourCondition)
{
return Request.CreateResponse<Employee>(HttpStatusCode.OK, obj);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Not Found");
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Hanane Moshe |
Solution 2 | Alex |
Solution 3 | Abdus Salam Azad |