Как сделать 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();
            }
        }
    }
}

Спасибо за помощь!

Другие вопросы по тегам