i am using an API in our portal for money transferring. Like i want to send 20k, then it will go in 4 parts, 5k in each API call, from the API company they said we have to set 3 mins for each one request. Here is my code how i set timeout, but it still shows error when 3 mins up and second request not completed.
decimal transferAmount = 0;
decimal _amount = 20000;
while (_amount > 0)
{
if (_amount > 5000)
{ transferAmount = 5000; }
else
{ transferAmount = _amount }
string webAddr = "https://www.test.in/transfer";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.Method = "POST";
httpWebRequest.Timeout = 180000;
string json = "";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
json =
"{\"token\":\"123456",\"accesskey\":\"test123",\"request\": {\"amount\": \"" + _amount;
json = json + "\"}}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
string _resultFinal = "";
var responseText = "";
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
XmlReader xReader = XmlReader.Create(new StringReader(responseText));
while (xReader.Read())
{
switch (xReader.NodeType)
{
case XmlNodeType.Element:
if (xReader.Name == "xml" || xReader.Name == "bank")
break;
else
_resultFinal = _resultFinal + xReader.Name;
break;
case XmlNodeType.Text:
_resultFinal = _resultFinal + " = " + xReader.Value + ", ";
break;
}
}
xReader.Close();
streamReader.Close();
}
httpResponse.Close();
httpResponse.Dispose();
httpWebRequest.Abort();
_amount = _amount- transferAmount;
}
What I have tried:
Please see my code and suggest me, where i am wrong and correct me sir