Skip to content

Commit eb4e89e

Browse files
committed
Merge pull request AuthorizeNet#132 from akankaria/master
Adding http timeouts
2 parents 21d74ed + 0389e3b commit eb4e89e

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

Authorize.NET/AIM/Gateway.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using System.Collections.Specialized;
1111
using System.Xml.Serialization;
1212
using System.Xml;
13+
using AuthorizeNet.Util;
1314

1415
namespace AuthorizeNet {
1516

@@ -58,6 +59,14 @@ protected string SendRequest(string serviceUrl, IGatewayRequest request) {
5859
webRequest.ContentLength = postData.Length;
5960
webRequest.ContentType = "application/x-www-form-urlencoded";
6061

62+
//set the http connection timeout
63+
var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);
64+
webRequest.Timeout = (httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);
65+
66+
//set the time out to read/write from stream
67+
var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);
68+
webRequest.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);
69+
6170
// post data is sent as a stream
6271
StreamWriter myWriter = null;
6372
myWriter = new StreamWriter(webRequest.GetRequestStream());

Authorize.NET/Util/Constants.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,14 @@ public static class Constants {
1818

1919
public const string PropApiLoginid = "api.login.id";
2020
public const string PropTransactionKey = "transaction.key";
21-
public const string PropMd5Hashkey = "md5.hash.key";
21+
public const string PropMd5Hashkey = "md5.hash.key";
22+
23+
public const string HttpConnectionTimeout = "http.connectionTimeout";
24+
public const string HttpReadWriteTimeout = "http.readWriteTimeout";
25+
26+
public const int HttpConnectionDefaultTimeout = 30000;
27+
public const int HttpReadWriteDefaultTimeout = 30000;
28+
2229
}
2330
#pragma warning restore 1591
2431
}

Authorize.NET/Util/HttpUtility.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ public static ANetApiResponse PostData<TQ, TS>(AuthorizeNet.Environment env, TQ
4646
webRequest.KeepAlive = true;
4747
webRequest.Proxy = SetProxyIfRequested(webRequest.Proxy);
4848

49+
//set the http connection timeout
50+
var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);
51+
webRequest.Timeout = (httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);
52+
53+
//set the time out to read/write from stream
54+
var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);
55+
webRequest.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);
56+
4957
var requestType = typeof (TQ);
5058
var serializer = new XmlSerializer(requestType);
5159
using (var writer = new XmlTextWriter(webRequest.GetRequestStream(), Encoding.UTF8))

Authorize.NET/Utility/HttpXmlUtility.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.IO;
66
using System.Net;
77
using AuthorizeNet.APICore;
8+
using AuthorizeNet.Util;
89

910
namespace AuthorizeNet {
1011
/// <summary>
@@ -58,6 +59,14 @@ public ANetApiResponse Send(ANetApiRequest apiRequest) {
5859
webRequest.ContentType = "text/xml";
5960
webRequest.KeepAlive = true;
6061

62+
//set the http connection timeout
63+
var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);
64+
webRequest.Timeout = (httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);
65+
66+
//set the time out to read/write from stream
67+
var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);
68+
webRequest.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);
69+
6170
// Serialize the request
6271
var type = apiRequest.GetType();
6372
var serializer = new XmlSerializer(type);

AuthorizeNet.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
33
<metadata>
44
<id>AuthorizeNet</id>
5-
<version>1.8.8</version>
5+
<version>1.8.9</version>
66
<title>AuthorizeNet</title>
77
<authors>Authorize.Net</authors>
88
<owners>AuthorizeNet</owners>

0 commit comments

Comments
 (0)