POST JSON с Flurl
Я начинаю с Flurl и хочу создать POST, но думаю, что у меня проблема с форматом моих параметров JSON.
Вы можете увидеть параметры JSON:
{
"aaaUser" : {
"attributes" : {
"name" : "device:domain\\login",
"pwd" : "123456"
}
}
}
Эти настройки работают с Почтальоном, и теперь я хотел бы использовать 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"
});
}
}
}
Спасибо за помощь!
1 ответ
Я думаю, что 2 проблемы были определены здесь.
Вы используете
PostUrlEncodedAsync
, который собирается отправлять данные в URL-кодированном формате, например так:name=device:domain\\login&pwd=123456
, Если вы хотите, чтобы данные сериализовались в JSON, используйтеPostJsonAsync
вместо.Вы включаете только вложенные
attributes
объект JSON, а не весь объект.
Короче говоря, вы захотите что-то вроде этого:
var result = await "https://IP/api/aaaLogin.json".PostJsonAsync(new
{
aaaUser = new
{
attributes = new
{
name = "device:domain\\login",
pwd = "123456"
}
}
});
Как только вы доберетесь до этого места, вам нужно будет знать, как обрабатывать результаты. Если ответ отформатирован в формате JSON, вы, вероятно, захотите добавить .ReceiveJson()
или же .ReceiveJson<T>()
на вышеуказанный вызов, чтобы иметь более дружественный объект для работы. Пожалуйста, обратитесь к документации.