Как отправить почтовый запрос API сообщений - PullRequest
0 голосов
/ 28 октября 2019

Что я хочу сделать

Я хочу отправить «пост-запрос» по ссылке ниже. Более конкретно, когда вы открываете ссылку, вы видите «Пример запроса», который выглядит следующим образом.

'{
    "messages":[
        {
            "type":"text",
            "text":"Hello, world1"
        },
        {
            "type":"text",
            "text":"Hello, world2"
        }
    ]
}'

В примере он отправляет два сообщения, но я просто хочу отправить одно.

Я не знаю, как писать на C #

Отправить широковещательное сообщение

Это код, с которым я борюсь.

        // To creat HttpClient
        var client = new HttpClient();

        // Accesstoken
        var accessToken = "my token";

        // URL
        var url = "https://api.line.me/v2/bot/message/broadcast";



        var request = new HttpRequestMessage(HttpMethod.Post, url);
        // Request Header
        request.Headers.Add("Authorization", "Bearer " + accessToken);
        var parameters = new Dictionary<string, string>()
        {
            { "type", "text" },
            { "text", "Hello World" }
        };

        var parameters2 = new Dictionary<string, Dictionary<string, string>>()
        {
            { "messages", parameters}
        };

        var str = @"{""messages"":""  {""type"": ""text"",""text"" : ""Hello World""}""}";



        var content = new JObject(str);


        request.Content = new StringContent(
            content.ToString(),
            Encoding.UTF8,
            "application/json"
        );

        await client.SendAsync(request);

Конечно, это не такt работа

вопрос⓵

Как мне написать пример на C # ???

question⓶

Если вы можете, не могли бы вы предоставить всю процедуру отправки широковещательного сообщения с нуля?

PS

Для тех, кто волнуется, я все еще собираю ответы в своемПервый вопрос, а также пытается заставить его работать.

1 Ответ

1 голос
/ 29 октября 2019

Я решил проблему.

Процедура приведена ниже.

  1. Чтобы создать класс по этой ссылке http://json2csharp.com/

  2. Чтобы сериализовать это

3. Чтобы использовать ToString () для сериализации JSON

И весь код выглядит так:

            // To creat HttpClient
            var client = new HttpClient();

            // Accesstoken
            var accessToken = "my token";

            // URL
            var url = "https://api.line.me/v2/bot/message/broadcast";

            // Post
            var request = new HttpRequestMessage(HttpMethod.Post, url);


            // Request Header
            request.Headers.Add("Authorization", "Bearer " + accessToken);

            // To create messages
            var message1 = new Message("text", "Hello World1");
            var message2 = new Message("text", "Hello World2");
            var root = new RootObject();
            root.addMessage(message1);
            root.addMessage(message2);

            // To serialize
            var json = JsonConvert.SerializeObject(root);

            request.Content = new StringContent(
                json.ToString(),
                Encoding.UTF8,
                "application/json"
            );

            await client.SendAsync(request);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...