I'm currently working on an API with .NET Core Web App for a test and I'm stuck on this.
Actually, I have this code:
namespace CoreWebApp.API.Admin
{
[Route("api/country")]
public class CountryController : Controller
{
// GET: api/country
[HttpGet]
public HttpResponseMessage Get()
{
List<Country> countries = Shared.Database.SqlAction.CountriesTable.GetCountries();
return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(countries), Encoding.UTF8, "application/json") };
}
}
}
What I'm trying to do is return an HttpStatusCode
and an HttpContent
. I then should get that on Postman:
[
{
"Name":"France"
},
{
"Name":"Germany"
},
{
"Name":"Spain"
},
....
]
StatusCode Ok 200
However, I don't get this body at all, there is what I get:
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"application/json; charset=utf-8"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}
I'm searching for a while now and I'm still unable to get the data in the content, what am I doing wrong? It's my first .NET Core Api so feel free to give any advice if you have some :)
Thanks for any help !
Asp.net core does not support anymore the returning
HttpResponseMessage
type to resolve your issue the recommended return type is like the followingMore here how the ApiController in the full standard .net looks like
and the source code of controller base class from .net core does not have any definition for
HttpResponseMessage