对同一个 RestSharp Request 使用多个函数实用吗?
Is it practical to use multiple functions for the same RestSharp Request?
使用相同的 RestSharp 参数但不同的 return 语句创建多个函数是否可行?
例如:
我会获取 IP 地址
public string getIP()
{
RestClient client = new RestClient("http://ip-api.com/json/?fields=9009");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
string source = (response.Content);
dynamic data = JObject.Parse(source);
string IPAddress = data.query;
return IPAddress;
}
使用另一个像 getCity() 然后使用
好吗
string City = data.city;
return City;
等等?
如果每个APIURL都一样,最好只调用一次API,多次解析数据,每个字段一次
如果 URL 发生变化(例如 http://ip-api.com/json/?fields=9009 for IP, http://city-api.com/json/?fields=9009 表示城市等),那么您将编写多个函数。
您应该能够使用输出参数 return 多个值:https://www.c-sharpcorner.com/UploadFile/9b86d4/how-to-return-multiple-values-from-a-function-in-C-Sharp/
使用 RestSharp 的主要优势是其内置的序列化功能和简单的参数处理。因此,在这种特殊情况下,最好的方法是创建一个小的 DTO 来表示响应。
public record IpApiResponse(
string Country, string City, string Zip,
string Timezone, string Isp, string Query
);
然后,您可以调用
var response = await client.GetJsonAsync<IpApiResponse>();
示例显示 RestSharp v107 API。记住不要为每次调用实例化一个新的 RestClient 实例。
使用相同的 RestSharp 参数但不同的 return 语句创建多个函数是否可行?
例如:
我会获取 IP 地址
public string getIP()
{
RestClient client = new RestClient("http://ip-api.com/json/?fields=9009");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
string source = (response.Content);
dynamic data = JObject.Parse(source);
string IPAddress = data.query;
return IPAddress;
}
使用另一个像 getCity() 然后使用
好吗string City = data.city;
return City;
等等?
如果每个APIURL都一样,最好只调用一次API,多次解析数据,每个字段一次
如果 URL 发生变化(例如 http://ip-api.com/json/?fields=9009 for IP, http://city-api.com/json/?fields=9009 表示城市等),那么您将编写多个函数。
您应该能够使用输出参数 return 多个值:https://www.c-sharpcorner.com/UploadFile/9b86d4/how-to-return-multiple-values-from-a-function-in-C-Sharp/
使用 RestSharp 的主要优势是其内置的序列化功能和简单的参数处理。因此,在这种特殊情况下,最好的方法是创建一个小的 DTO 来表示响应。
public record IpApiResponse(
string Country, string City, string Zip,
string Timezone, string Isp, string Query
);
然后,您可以调用
var response = await client.GetJsonAsync<IpApiResponse>();
示例显示 RestSharp v107 API。记住不要为每次调用实例化一个新的 RestClient 实例。