WebApi Укажите Content-Type как приложение / json - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь вернуть объект JSON, полученный из стороннего API.

[Route("api/Catalog/Categories")]
public class CategoriesController : Controller
{
    //Get all categories
    [HttpGet]
    public IActionResult Get()
    {

        var client = new RestClient();
        client.BaseUrl = new Uri("http://api.tcgplayer.com");

        var request = new RestRequest(Method.GET);
        request.Resource = "/catalog/categories";
        request.RequestFormat = DataFormat.Json;
        request.AddHeader("Content-Type", "application/json; charset=utf-8");
        request.AddHeader("Authorization", "Bearer redacted");

        var tcgResponse = client.Execute(request);

        return Ok(tcgResponse.Content);
    }
}

Тип содержимого отображается как «документ», что нежелательно. Как указать тип контента как «application / json»?

chrome network tab

chrome response headers

Я уже пробовал добавить

[Produces("application/json")]

но это вызвало двойную сериализацию содержимого моего ответа.

1 Ответ

0 голосов
/ 18 декабря 2018

FTR Я закончил десериализацию и повторную сериализацию для оператора return. Не красиво, но это работает.

 var tcgResponse = client.Execute(request);

 var r = JsonConvert.DeserializeObject<dynamic>(tcgResponse.Content);

 return r;
...