c# - RestSharp AddBody 在 JSON 参数中添加双引号
问题描述
我正在使用 RESTSharp 调用 API
var client = new RestClient("http://demoservice.com");
var request = new RestRequest("callapi", "put");
request.RequestFormat = DataFormat.Json;
string jsonaction = "{\"tokenid\":\"x123x45\",\"userid\":\"2456\",\"ip\":\"192.168.1.20\",\"transaction\":\"6\",\"actionCode\":\"78\",\"jtoken\":\"systemtoken\"}";
request.AddBody(new { action = "SAVE", data = "savedata", token = "systemtoken", jsonaction = jsonaction });
我正在检查传递请求的调试数据。我的预期输出如下
{"action":"SAVE","data":"savedata","token":"systemtoken","jsonaction":{"tokenid":"x123x45","userid":"2456","ip":"192.168.1.20","transaction":"6","actionCode":"78","jtoken":"systemtoken"}}
但是得到
{"action":"SAVE","data":"savedata","token":"systemtoken","jsonaction":"{"tokenid":"x123x45","userid":"2456","ip":"192.168.1.20","transaction":"6","actionCode":"78","jtoken":"systemtoken"}"}
如果有人可以指导如何发布 JSON,我已经尝试过使用 Addbody 和 AddJsonBody 但没有任何效果。
解决方案
您可以使用以下
request.AddParameter()
方法执行此操作:
request.Method = Method.POST;
request.AddHeader("Accept", "application/json");
request.Parameters.Clear();
request.AddParameter("application/json", data , ParameterType.RequestBody);
var response = client.Execute(request);
var content = response.Content; // raw content as string
其中数据的格式为:
data :
{
"action":"dosomething" ,
"data":"somedata" ,
"token":"sometoken",
"jsonAction": {
"tokenId": "",
...
}
希望能帮助到你!
推荐阅读
- python - 在 Django 中使用动态模型名称和字段从 sql 查询
- xlwings - xlwings 激活变量工作表名称
- java - 从 Java 中的不同类调用非静态方法
- c# - 如何使用来自 C# 的文档数据库客户端从 cosmos db 读取派生对象
- python - 检查两列之间的一对一关系
- javascript - 如何迭代带有索引的生成器?
- javascript - MongoDB/Mongoose - 仅当某个字段是唯一的时才将对象添加到对象数组中
- razor - 将 RazorPage 从 RazorClassLibrary 渲染到字符串在渲染部分时失败
- javascript - 何时收到通知
- html - 如何使用滤镜转换图像