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的响应。之后你应该会收到预期的结果。
嘿,这是我第一次尝试 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的响应。之后你应该会收到预期的结果。