Search code examples
apirestsharp

RestSharp POST not working properly. I am attempting to send user input to webapi


I m trying to POST the request using RestSharp client. My code is as follows. The objective is to send the user input to a Web API. I am working in VB and I am having a hard time formatting the request properly. As soon as I try to execute I get a error that prevent the application from starting. For api I am using Postman.

Here is code used to call the web api

private async void StartBtn_Click(object sender, RoutedEventArgs e)
        {
            isWorking = true;
            if (isWorking == true)
            {


                for (int i = 0; i < NumbersListbox.Items.Count; i++)
                {
                    if (ToggleSelected.IsChecked == true && ToggleRandom.IsChecked == false)
                    {

ApiKey = Your_API_KEY                        
var client = new RestClient("https://myurl.com/api/send?key= + Your_API_KEY");                        
browserprimary.Address = client;
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddParameter("phone", "NumbersListbox.Items[i].ToString()");
request.AddParameter("message", "MessagesListBox.Items[i].ToString()");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);;

                    }
                    else if (ToggleSelected.IsChecked == false && ToggleRandom.IsChecked == true)
                    {

                        var random = new Random();
                        int index = random.Next(0, MessagesListBox.Items.Count);

ApiKey = Your_API_KEY;
var client = new RestClient("https://myurl.com/api/send?key= + Your_API_KEY");                        
browserprimary.Address = client;
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddParameter("phone", "NumbersListbox.Items[i].ToString()");
request.AddParameter("message", "MessagesListBox.Items[i].ToString()");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);");                        

                    }


                    await Task.Delay(12000);

                    browserprimary.ExecuteScriptAsync("document.querySelectorAll(\"[data-icon ^= 'send']\")[0].parentElement.click();");


                    if (Delaybox.Text != "")
                    {
                        await Task.Delay(TimeSpan.FromSeconds(Convert.ToDouble(Delaybox.Text)));
                    }
                }
            }

            StartBtn.IsEnabled = false;
            StopBtn.IsEnabled = true;

        }

Solution

  • After more studying, I figured out it was a syntax error.

     private async void StartBtn_Click(object sender, RoutedEventArgs e)
            {
                isWorking = true;
                if (isWorking == true)
                {
    
    
                    for (int i = 0; i < NumbersListbox.Items.Count; i++)
                    {
                        if (ToggleSelected.IsChecked == true && ToggleRandom.IsChecked == false)
                        {
    
                      var client = new RestSharp.RestClient("https://myurl.com/api/send?key=" + APIKey);
                            client.Timeout = -1;
                            var request = new RestRequest(Method.POST);
                            request.AddParameter("phone", "NumbersListbox.Items[i].ToString()");
                            request.AddParameter("message", "MessagesListBox.Items[i].ToString()");
                            var response = client.Execute(request);
                            Console.WriteLine(response.Content);
    
                        }
                        else if (ToggleSelected.IsChecked == false && ToggleRandom.IsChecked == true)
                        {
    
                      var client = new RestSharp.RestClient("https://myurl.com/api/send?key=" + APIKey);
                            client.Timeout = -1;
                            var request = new RestRequest(Method.POST);
                            request.AddParameter("phone", "NumbersListbox.Items[i].ToString()");
                            request.AddParameter("message", "MessagesListBox.Items[i].ToString()");
                            var response = client.Execute(request);
                            Console.WriteLine(response.Content);
    
                        }
    
    
                        await Task.Delay(12000);
    
                        browserprimary.ExecuteScriptAsync("document.querySelectorAll(\"[data-icon ^= 'send']\")[0].parentElement.click();");
    
    
                        if (Delaybox.Text != "")
                        {
                            await Task.Delay(TimeSpan.FromSeconds(Convert.ToDouble(Delaybox.Text)));
                        }
                    }
                }
    
                StartBtn.IsEnabled = false;
                StopBtn.IsEnabled = true;
    
            }