//Create the collection of data to POST to the RESTlet
List <int> orderIDs = new List <int>();
//this will create a list of 10 order ids that will be sent to the RESTlet concurrently via POST
for (var i = 0; i < 10; i++) { int ID = 10000 + i; orderIDs.Add(ID); }
//Loop through each item in orderIDs and send each concurrently
Parallel.ForEach(orderIDs, orderID =>
{
//create instance of the web request
WebRequest request = WebRequest.Create("https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl?script=1107&deploy=1");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers.Add("Authorization:NLAuth nlauth_account=123456,nlauth_email=email@netsuite.com,nlauth_signature=password,nlauth_role=3");
string jsonString = "{\"orderid\":" + orderID + "}";
//write json string on the request body
using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(jsonString); }
//send request and get response
WebResponse response = request.GetResponse();
});
MessageBox.Show("Send Request Completed!");
Note:
1. The number of threads(concurrent requests) would automatically be calculated by the system using a formula and the number of cores your system has.
2. The order in which the orderIDs are sent do not necessarily depend on their position on the list of order IDs.
No comments:
Post a Comment