Получите ответ JSON с помощью RestSharp
Я новичок в С#, и я пытаюсь получить ответ JSON от запроса REST с помощью RestSharp; Запрос, который я хочу выполнить, следующий: "http://myurl.com/api/getCatalog?token=saga001"
. Он отлично работает, если я выполняю его в браузере.
Я пробовал это:
var client = new RestClient("http://myurl.com/api/");
var request = new RestRequest("getCatalog?token=saga001");
var queryResult = client.Execute(request);
Console.WriteLine(queryResult);
И я получаю "RestSharp.RestReponse" вместо результата JSON, в который я прыгаю.
Спасибо за вашу помощь !
Ответы
Ответ 1
Пытаться:
var client = new RestClient("http://myurl.com/api/");
var request = new RestRequest("getCatalog?token={token}", Method.GET);
request.AddParameter("token", "saga001", ParameterType.UrlSegment);
// request.AddUrlSegment("token", "saga001");
request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
var queryResult = client.Execute(request);
Console.WriteLine(queryResult.Content);
Ответ 2
Попробуйте, как показано ниже:
var client = new RestClient("http://myurl.com/api/");
client.ClearHandlers();
var jsonDeserializer = new JsonDeserializer();
client.AddHandler("application/json", jsonDeserializer);
var request = new RestRequest("getCatalog?token=saga001");
var queryResult = client.Execute(request);
Console.WriteLine(queryResult);
Ответ 3
Это старо, но я просто боролся с этим тоже. Это самый простой способ найти.
var client = new RestClient("http://myurl.com/api/");
var request = new RestRequest("getCatalog?token=saga001");
var response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK)
{
// Two ways to get the result:
string rawResponse = response.Content;
MyClass myClass = new JsonDeserializer().Deserialize<MyClass>(response);
}
Ответ 4
Если вы хотите сохранить результат в файл JSON:
Вы должны использовать эти пространства имен:
using RestSharp;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
var client = new RestClient("http://myurl.com/api/");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
var queryResult = client.Execute<Object>(request).Data;
string json = JsonConvert.SerializeObject(queryResult);
System.IO.File.WriteAllText(@"C:\...\path.json", json);