Epo*_*poc 21 c# rest client .net-3.5 restsharp
我正在使用C#.NET 3.5构建RESTful API客户端.
我第一次开始用好的HttpWebClient(和HttpWebResponse)来构建它,我可以做任何我想做的事.我很高兴.我唯一坚持的是JSON响应的自动反序列化.
所以,我听说过一个名为RestSharp(104.1)的精彩库,它可以简化RESTful API客户端的开发,并自动反序列化JSON和XML响应.我打开它在我的所有代码,但现在我知道我不能做的事情,我可以做HttpWebClient和HttpWebResponse,就像访问和编辑原始请求主体.
有人有解决方案吗?
编辑:我知道如何设置请求体(带request.AddBody()),我的问题是我想获取此请求体字符串,编辑它,并在请求中重新设置它(动态更新请求体)
dav*_*mos 49
请求体是一种参数.要添加一个,你可以做其中一个......
req.AddBody(body);
req.AddBody(body, xmlNamespace);
req.AddParameter("text/xml", body, ParameterType.RequestBody);
req.AddParameter("application/json", body, ParameterType.RequestBody);
Run Code Online (Sandbox Code Playgroud)
要检索body参数,您可以查找req.Parameters集合中Type等于的项目ParameterType.RequestBody.
请在此处查看该RestRequest课程的代码.
以下是RestSharp文档ParameterType.RequestBody所说的内容:
如果设置了此参数,则它的值将作为请求的主体发送.参数名称被忽略,其他RequestBody参数也被忽略 - 只接受1.
RequestBody仅适用于POST或PUT请求,因为它们实际上只发送一个正文.
如果你也有GetOrPost参数,它们将覆盖RequestBody - RestSharp不会合并它们,但它会抛弃RequestBody参数.
要在运行中读取/更新body参数,您可以尝试:
var body = req.Parameters.FirstOrDefault(p => p.Type == ParameterType.RequestBody);
if (body != null)
{
Console.WriteLine("CurrentBody={0}", body.Value);
body.Value = "NewBodyValue";
}
Run Code Online (Sandbox Code Playgroud)
或者失败,RestRequest使用不同的主体创建对象的新副本.
| 归档时间: |
|
| 查看次数: |
22368 次 |
| 最近记录: |