gpt4 book ai didi

RestSharp 用法

转载 作者:行者123 更新时间:2023-12-04 05:34:55 26 4
gpt4 key购买 nike

最近我在用 RestSharp消耗我的 Restful 资源。并期望在服务器和客户端之间与 JSon 交换数据。下面是我的 C# 代码。

var client = new RestSharp.RestClient();
var request = new RestRequest(sUrl,Method.POST);
request.RequestFormat = DataFormat.Json;
request.Timeout = TIME_OUT_MILLISECONTS ;
request.AddHeader("Content-Type", "application/json");
request.AddBody(new { appID = sAppId, loginName = sUserName, password=sPassword });
var response = client.Execute(request);
string s=response.Content;//It is always XML format.

结果不是我所期望的(Json 数据格式),尽管我已经设置了 RequestFormat Json并添加 Http header Content-Type .所以我决定使用.Net Reflector来找出RestClient.Execute方法中发生了什么。这是该方法的代码。
public RestClient()
{
...
this.AddHandler("application/json", new JsonDeserializer());
this.AddHandler("application/xml", new XmlDeserializer());
this.AddHandler("text/json", new JsonDeserializer());
this.AddHandler("text/x-json", new JsonDeserializer());
this.AddHandler("text/javascript", new JsonDeserializer());
this.AddHandler("text/xml", new XmlDeserializer());
this.AddHandler("*", new XmlDeserializer());
...
}

我对此有一些疑问:
  • 由于RestClient增加了多种Content-Type进入 HttpWebRequest。构建请求的方法正确吗?我想也许这就是 Response.Content 总是 XML 的原因。
  • 不知道为什么RestClient需要建一个HttpWebRequest像那样。这样做有什么意义吗?
  • 如果我们在一个 Http 请求中同时指定了 JSon 和 XMl 消息格式,最后哪个有效?允许吗?

  • 谢谢。祝你有美好的一天。

    最佳答案

    RestSharp 将根据 的内容类型使用正确的处理程序。回复 .这就是那些AddHandler正在做;它配置 RestClient 以接受响应中的某些内容类型并将这些类型映射到反序列化器。通常你会想要为 json 内容类型设置一个接受头,它通知服务器在响应中发送 json。

    request.AddHeader("Accept", "application/json")

    当然,这假设您正在访问的服务器配置为使用 json 响应。

    关于RestSharp 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091023/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com