使用子负载将 JSON 数据发送到 REST API
Send JSON data to REST API with sub payloads
我正在尝试使用我的 C# 应用程序将 JSON 数据发送到 REST API
JSON数据应该是这样的:
{
'agent': {
'name': 'AgentHere',
'version': 1
},
'username': 'Auth',
'password': 'Auth'
}
因此,如您所见...agent
具有子负载,它们是 name
和 version
我正在使用 RestSharp 调用 REST API:
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 arguments
和 Argument 1: cannot convert from 'string' to 'RestSharp.Parameter'
:
request.AddParameter(
"{'agent': { 'name': 'AgentHere', 'version': 1 }, 'username': 'Auth', 'password': 'Auth' }"
);
我无法制作子负载
如有任何帮助,我们将不胜感激。
谢谢!
看来数据是为请求正文准备的。使用适当的 AddParameter
重载。
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()
与表示要序列化的数据的对象一起使用
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);
我正在尝试使用我的 C# 应用程序将 JSON 数据发送到 REST API
JSON数据应该是这样的:
{
'agent': {
'name': 'AgentHere',
'version': 1
},
'username': 'Auth',
'password': 'Auth'
}
因此,如您所见...agent
具有子负载,它们是 name
和 version
我正在使用 RestSharp 调用 REST API:
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 arguments
和 Argument 1: cannot convert from 'string' to 'RestSharp.Parameter'
:
request.AddParameter(
"{'agent': { 'name': 'AgentHere', 'version': 1 }, 'username': 'Auth', 'password': 'Auth' }"
);
我无法制作子负载
如有任何帮助,我们将不胜感激。
谢谢!
看来数据是为请求正文准备的。使用适当的 AddParameter
重载。
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()
与表示要序列化的数据的对象一起使用
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);