Here, I have described the simplest way to create a Web API POST method in a Windows application using C#.
First, we have to create a Web API POST method where we pass the data as a string.
In this method, we will use the HttpWebRequest object to get or post the data from the URL.
Use the below namespaces.
using System;
using System.IO;
using System.Net;
using System.Text;
Now, let us create the POST method.
public class WebPostMethod
{
public string Post(string postData, string URL)
{
string responseFromServer = "";
WebRequest request = WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(postData.ToUtf8Bytes(), 0, postData.Length);
}
WebResponse response = request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
responseFromServer = reader.ReadToEnd();
}
return responseFromServer;
}
}
Here, we will create aWeb API GET method in Windows application using C#.
public class WebGetMethod
{
public string Get(string URL)
{
string jsonString = "";
WebRequest request = WebRequest.Create(URL);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
using (var response = request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
jsonString = reader.ReadToEnd();
}
}
return jsonString;
}
}
Now, let's create the method to invoke the webPostMethod and webGetMethod.
public class CallWebServices
{
public void Call()
{
string postData = "user_id=25689&passwd=123456";
string URL = "http://xxx-xx-xxx-xx-xxx.xxxxxxx-x.amazonaws.com/index.php/somefunctionname";
var data = WebPostMethod.Post(postData, URL);
Console.WriteLine(data);
var getData = WebGetMethod.Get(URL);
Console.WriteLine(getData);
}
}
Here, we get the result as a JSON string.
I hope this is useful for all readers. Happy Coding!