RESTsharp 使用 & 获取命令

RESTsharp get command with &

嘿,这是我第一次尝试 RESTsharp。我正在尝试创建一个如下所示的 GET 调用:

http://labs.bible.org/api/?passage=random&type=json

我通过查看一些在线示例尝试了以下方法:

var client = new RestClient("http://labs.bible.org/");
var request = new RestRequest("api/?{0}&{1}", Method.GET);

request.AddParameter("passage", "random");
request.AddParameter("type", "json");

var queryResult = client.Execute<List<quotesAPI>>(request).Data;

当我在 queryResult 上停止时,它只是说 NULL。

quotesAPI 看起来像这样:

public class qAPI
{
   public string bookname { get; set; }
   public string chapter { get; set; }
   public string verse { get; set; }
   public string text { get; set; }
}

那么我需要如何格式化调用才能使其正常工作?

更新 1

 var client = new RestClient("http://labs.bible.org/");
 var request = new RestRequest("api", Method.GET);

 request.AddParameter("passage", "random");
 request.AddParameter("type", "json");
 client.AddHandler("application/x-javascript", new RestSharp.Deserializers.JsonDeserializer());

 var queryResult = client.Execute<List<quotesAPI>>(request).Data;

首先,不需要像这样创建rest客户端:

new RestRequest("api/?{0}&{1}", Method.GET);

这将导致对 http://labs.bible.org/api/?{0}&{1}&passage=random&type=json 的查询。在这种特定情况下,它可能仍然是 "work",但通常您当然应该避免这种情况。相反,像这样创建它:

new RestRequest("api", Method.GET);

对于 GET 方法,您创建的参数将附加到查询字符串中。

这里的另一个问题是不寻常的响应内容类型。您查询的响应具有内容类型 application/x-javascript。 RestSharp 不知道如何处理此类内容,因此您应该告诉它:

var client = new RestClient("http://labs.bible.org/");
client.AddHandler("application/x-javascript", new RestSharp.Deserializers.JsonDeserializer());

这里你说它应该反序列化内容类型为json的响应。之后你应该会收到预期的结果。