首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用子负载将JSON数据发送到REST API

使用子负载将JSON数据发送到REST API
EN

Stack Overflow用户
提问于 2018-08-06 08:39:53
回答 1查看 770关注 0票数 1

我正在尝试使用C#应用程序将JSON数据发送到REST API

JSON数据应该是这样的:

代码语言:javascript
运行
复制
{
    'agent': {
        'name': 'AgentHere',
        'version': 1
    },
    'username': 'Auth',
    'password': 'Auth'
}

所以如你所见..。agent具有nameversion两个子有效负载

我使用RestSharp调用REST API,如下所示:

代码语言:javascript
运行
复制
var client = new RestClient("https://example.com");
            // client.Authenticator = new HttpBasicAuthenticator(username, password);

    var request = new RestRequest(Method.POST);
    request.AddParameter(
        "{'agent': { 'name': 'AgentHere', 'version': 1 }, 'username': 'Auth', 'password': 'Auth' }"
    );

    // easily add HTTP Headers
    request.AddHeader("Content-Type", "application/json");

    // execute the request
    IRestResponse response = client.Execute(request);
    var content = response.Content; // raw content as string

但是我在这一行得到了错误The best overloaded method match for 'RestSharp.RestRequest.AddParameter(RestSharp.Parameter)' has some invalid argumentsArgument 1: cannot convert from 'string' to 'RestSharp.Parameter'

代码语言:javascript
运行
复制
request.AddParameter(
            "{'agent': { 'name': 'AgentHere', 'version': 1 }, 'username': 'Auth', 'password': 'Auth' }"
        );

我无法制造潜水艇的有效载荷

任何帮助都将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 08:54:39

看起来数据是针对请求正文的。使用适当的AddParameter重载。

代码语言:javascript
运行
复制
var request = new RestRequest(Method.POST);

var contentType = "application/json";
var bodyData = "{\"agent\": { \"name\": \"AgentHere\", \"version\": 1 }, \"username\": \"Auth\", \"password\": \"Auth\" }";

request.AddParameter(contentType, bodyData, ParameterType.RequestBody);

为了避免手动构造JSON,这可能会导致错误,请使用带有表示要序列化的数据的对象的AddJsonBody()

代码语言:javascript
运行
复制
var request = new RestRequest(Method.POST);
var data =  new {
    agent = new {
        name = "AgentHere",
        version = 1 
    }, 
    username = "Auth", 
    password = "Auth" 
};
//Serializes obj to JSON format and adds it to the request body.
request.AddJsonBody(data);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51699326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档