У нас есть WebApi, который просто возвращает ответ JSON, подобный следующему:
[{"company": "KY C"}]
Когда мы публикуем sh WebApi, используя опцию publi sh на VS или просто копируем и вставляем на сервер, он возвращает это очень странно, и это только на этом сервере.
Ответ на рабочий сервер:
{"Версия": {"_Major": 1, "_Minor": 1, "_Build": -1, "_Revision": -1}, "Content": {"Заголовки": [{"Key": "Content-Type", "Value": ["application / json; charset = utf-8"]}]}, "StatusCode": 200, "ReasonPhrase": "OK "," Headers ": []," RequestMessage ": null," IsSuccessStatusCode ": true}
Я уже" гуглил "это безуспешно. Вот код контроллера:
[Authorize]
[HttpGet]
[EnableCors(origins: "*", headers: "*", methods: "*")]
[Route("api/Infra/GetEmpresas/{system}")]
public HttpResponseMessage GetCompanies(string system)
{
logger.Debug("Start GetCompanies");
HttpResponseMessage response = new HttpResponseMessage();
try
{
if (!String.IsNullOrEmpty(system))
{
Companies comps = new Companies();
var result = comps.GetCompanies(system);
if (result != string.Empty)
{
if (result.ToLower().StartsWith("error"))
{
response.StatusCode = HttpStatusCode.NotFound;
response.Content = new StringContent(
"{\"error\":\"" + result + "\"}", System.Text.Encoding.UTF8, "application/json");
}
else
{
response.Content = new StringContent(
result, System.Text.Encoding.UTF8, "application/json");
}
}
else
{
response.StatusCode = HttpStatusCode.NotFound;
response.Content = new StringContent(
"{\"error\":\"Company not found\"}", System.Text.Encoding.UTF8, "application/json");
}
}
else
{
response.StatusCode = HttpStatusCode.NotFound;
response.Content = new StringContent(
"{\"error\":\"System was not provided\"}", System.Text.Encoding.UTF8, "application/json");
}
}
catch (Exception exx)
{
logger.Error("Error on GetCompanies");
logger.Error(exx);
response.StatusCode = HttpStatusCode.InternalServerError;
response.Content = new StringContent(
"{\"error\":\"Error on GetCompanies\"}", System.Text.Encoding.UTF8, "application/json");
}
return response;
}