URI Bulksms для получения отправленных сообщений - PullRequest
0 голосов
/ 04 мая 2018

BulkSMS, извлечение сообщений из диапазона данных (> = или>) без наложенного ограничения

Json в порядке, отправляя и анализируя возвращаемые данные, это URI отправки, с которым я борюсь. Я получаю данные, возвращенные в правильном формате, но этого недостаточно, поэтому процесс не является форматом URI.

код внизу:

После дня просвещенных догадок о том, каким должен быть правильный синтаксис для этого URI, и прочтения руководства по API, которое, к его чести, имеет отличные примеры для отправки SMS-сообщений.

Думаю, это основная цель. Я пытаюсь получить список сообщений, которые мы отправили за определенный период или с определенной даты.

string myURI = "https://api.bulksms.com/v1/messages?filter=submission.date%3E%3D2018-01-01T10%3A00%3A00%2B01%3A00";

edit -% 3E равно> --------% 3D равно =

так что этот некодированный означает все сообщения с начала года, однако API предполагает, что ограничение количества сообщений составляет 1000, хорошо, но у них есть параметр, который можно добавить, чтобы переопределить это,? Limit = 3000 например

Когда я применяю это к своему URI, я получаю ошибку неверного запроса (400), есть ли у кого-нибудь примеры, которые могут работать?

api doc: http://developer.bulksms.com/json/v1/#tag/Message%2Fpaths%2F~1messages%2Fget

Приветствия

    public static string GetListOfSMSMessages(string body)
    {       
     string myURI = "https://api.bulksms.com/v1/messages?filter=submission.date%3E%3D2018-01-01T10%3A00%3A00%2B01%3A00";
     string myUsername = "validusername";
     string myPassword = "validpassword";
     var request = WebRequest.Create(myURI);
     request.Credentials = new NetworkCredential(myUsername, myPassword);
     request.PreAuthenticate = true;
     request.Method = "GET";
     request.ContentType = "application/ascii"; //"application/json";
        try
        {
            // make the call to the API
            var response = request.GetResponse();
            // read the response and add to list
            List<string> outlist = new List<string>();
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                while (!reader.EndOfStream)
                {
                    outlist.Add(reader.ReadLine());
                }
            }
        }
        catch (WebException ex)
        {
            // show the general message
            Console.WriteLine("An error occurred:" + ex.Message);
            // print the detail that comes with the error
            var reader = new StreamReader(ex.Response.GetResponseStream());
            Console.WriteLine("Error details:" + reader.ReadToEnd());
            return "Failed";
        }
        return "Successful";

1 Ответ

0 голосов
/ 07 мая 2018

Вот рабочий пример, включающий limit в строку запроса:

using System;
using System.IO;
using System.Net;
using System.Text;

    class MainClass
    {

        public static void Main(string[] args)
        {
            string myURI = "https://api.bulksms.com/v1/messages?filter=submission.date%3E%3D2018-01-01T10%3A00%3A00%2B01%3A00&limit=2";
            string myUsername = "someuser";
            string myPassword = "somepassword";
            var request = WebRequest.Create(myURI);
            request.Credentials = new NetworkCredential(myUsername, myPassword);
            request.PreAuthenticate = true;
            request.Method = "GET";
            request.ContentType = "application/json";
            try
            {
                // make the call to the API
                var response = request.GetResponse();

                // read the response and print it to the console
                var reader = new StreamReader(response.GetResponseStream());
                Console.WriteLine(reader.ReadToEnd());

            }  catch (WebException ex) {
                // show the general message
                Console.WriteLine("An error occurred:" + ex.Message);

                // print the detail that come with the HTTP error 
                var reader = new StreamReader(ex.Response.GetResponseStream());
                Console.WriteLine("Error details:" + reader.ReadToEnd());
            }

    }
}
...