У меня есть метод, который запрашивает внешние веб-сервисы и возвращает здесь json:
public string GetJsonRequest(string url)
{
string response = string.Empty;
var request = System.Net.WebRequest.Create(url) as HttpWebRequest;
if (request != null)
{
request.Method = WebRequestMethods.Http.Get;
request.Timeout = 20000;
request.ContentType = "application/json";
var httpresponse = (HttpWebResponse)request.GetResponse();
using (var streamreader = new StreamReader(httpresponse.GetResponseStream()))
response = streamreader.ReadToEnd();
if (httpresponse != null) httpresponse.Close();
}
return response;
}
И метод, который возвращает результат здесь:
public JsonResult Makes()
{
CarRepository rep = new CarRepository();
return new JsonResult()
{
Data = rep.GetMakes(),
ContentType = "application/json"
};
}
или
public string Makes()
{
CarRepository rep = new CarRepository();
return rep.GetMakes();
}
Это возвращает правильный json, но он обернут в XML
<JsonResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ContentType>application/json</ContentType>
<Data xsi:type="xsd:string">
The JSON data.......
</Data>
<JsonRequestBehavior>AllowGet</JsonRequestBehavior>
<MaxJsonLength xsi:nil="true"/>
<RecursionLimit xsi:nil="true"/>
</JsonResult>
Я проверил запрос в fiddler, и в заголовках Accept есть только значения XML. Как я могу получить это, чтобы просто распечатать json?Я использую ASP.NET Web API.Я могу удалить XML mediatypeformatter при запуске приложения, но мне может понадобиться использовать его позже в дальнейшем, так что я не думаю, что это путь.
Заранее спасибо