Как сделать JSON POST
Я хотел бы сделать небольшой скрипт, который будет получать результат в формате JSON. Для этого я буду использовать C# и Flurl, однако на небольшом шаге я заблокирован:/
Что касается параметров (имя пользователя и пароль), я уже пробовал с почтальоном, и он работает. Сейчас я пытаюсь установить свое первое соединение с C#:)
using System.Threading.Tasks;
using Flurl.Http;
namespace Script
{
class Program
{
static async Task Main(string[] args)
{
var result = await "https://ip/api/Login.json".PostUrlEncodedAsync(new
{
name = "login",
pwd = "password"
});
}
}
}
И у меня есть проблема с PostUrlEncodedAsync.
2 ответа
Похоже, проблема в ссылках на ваш проект.
Пожалуйста, взгляните на ваш проект ссылки на Flurl.dll. Если вы не видите Flurl там, пожалуйста, примените следующую команду в вашем окне менеджера пакетов:
PM> Install-Package Flurl -Version 2.8.0
Если вы видите там Flurl, попробуйте переустановить пакет nuget, выполнив следующую команду в окне диспетчера пакетов:
PM> Пакет обновлений -Id Flurl –reinstall
Надеюсь это поможет.
Вот небольшое обновление: я изменил свою траекторию, чтобы использовать httpwebrequest. Однако у меня есть небольшая проблема, потому что вся документация, которую я вижу в Интернете, предназначена только для http, а не для https:/
Можете ли вы сказать мне, что мне нужно использовать для запроса https?
using System.IO;
using System.Net;
namespace Script
{
class Program
{
static void Main(string[] args)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://url");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"aaaUser\":\"{\"attributes\":\"{\"name\":\"apic:domain\\login\"," + "\"pwd\":\"123456\"}\"}\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
}
}
Спасибо за помощь!