POST JSON 与 Flurl
POST JSON with Flurl
我从 Flurl 开始,我想创建一个 POST,但我认为我的 JSON 参数格式有问题。
可以看到JSON个参数:
{
"aaaUser" : {
"attributes" : {
"name" : "device:domain\login",
"pwd" : "123456"
}
}
}
这些设置适用于 Postman,现在我想使用 Flurl 继续我的小 POST :) 但是我的 JSON 格式不正确。
using System.Threading.Tasks;
using Flurl.Http;
namespace Script
{
class Program
{
static async Task Main(string[] args)
{
var result = await "https://IP/api/aaaLogin.json".PostUrlEncodedAsync(new
{
name = "device:domain\login",
pwd = "123456"
});
}
}
}
感谢您的帮助!
我认为这里发现了 2 个问题。
您正在使用 PostUrlEncodedAsync
,它将以 URL 编码格式发送数据,如下所示:name=device:domain\login&pwd=123456
。如果要将数据序列化为 JSON,请改用 PostJsonAsync
。
您只包含 JSON 的嵌套 attributes
对象,而不是整个对象。
简而言之,您将需要这样的东西:
var result = await "https://IP/api/aaaLogin.json".PostJsonAsync(new
{
aaaUser = new
{
attributes = new
{
name = "device:domain\login",
pwd = "123456"
}
}
});
一旦你走到这一步,你将需要知道如何处理结果。如果响应是 JSON 格式的,您可能希望将 .ReceiveJson()
或 .ReceiveJson<T>()
附加到上述调用,以便使用更友好的对象。请参考documentation.
我从 Flurl 开始,我想创建一个 POST,但我认为我的 JSON 参数格式有问题。
可以看到JSON个参数:
{
"aaaUser" : {
"attributes" : {
"name" : "device:domain\login",
"pwd" : "123456"
}
}
}
这些设置适用于 Postman,现在我想使用 Flurl 继续我的小 POST :) 但是我的 JSON 格式不正确。
using System.Threading.Tasks;
using Flurl.Http;
namespace Script
{
class Program
{
static async Task Main(string[] args)
{
var result = await "https://IP/api/aaaLogin.json".PostUrlEncodedAsync(new
{
name = "device:domain\login",
pwd = "123456"
});
}
}
}
感谢您的帮助!
我认为这里发现了 2 个问题。
您正在使用
PostUrlEncodedAsync
,它将以 URL 编码格式发送数据,如下所示:name=device:domain\login&pwd=123456
。如果要将数据序列化为 JSON,请改用PostJsonAsync
。您只包含 JSON 的嵌套
attributes
对象,而不是整个对象。
简而言之,您将需要这样的东西:
var result = await "https://IP/api/aaaLogin.json".PostJsonAsync(new
{
aaaUser = new
{
attributes = new
{
name = "device:domain\login",
pwd = "123456"
}
}
});
一旦你走到这一步,你将需要知道如何处理结果。如果响应是 JSON 格式的,您可能希望将 .ReceiveJson()
或 .ReceiveJson<T>()
附加到上述调用,以便使用更友好的对象。请参考documentation.