web-dev-qa-db-ja.com

RestSharpを使用してJSON応答を取得する

私はC#を使い始めたばかりで、RestSharpを使用してRESTリクエストからJSON応答を取得しようとしています。実行したいリクエストは次のリクエストです:"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);

そして、私がホッピングしているJSON結果の代わりに "RestSharp.RestReponse"を取得します。

ご協力いただきありがとうございます !

14
Adrien Budet

試してください:

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);
16
chridam

以下のように試してください:

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);
4
aaron ngo

これは古いですが、私もこれで苦労していました。これは私が見つけた最も簡単な方法です。

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);
}
1
Aximili

結果を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);
0
Community Ans