/// <summary> /// Performs get as a post action. /// </summary> /// <exception cref="RallyUnavailableException">Rally returned an HTML page. This usually occurs when Rally is off-line. Please check the ErrorMessage property for more information.</exception> /// <exception cref="RallyFailedToDeserializeJson">The JSON returned by Rally was not able to be deserialized. Please check the JsonData property for what was returned by Rally.</exception> private DynamicJsonObject DoGetAsPost(Request request, bool retry = true, int retryCounter = 1) { int retrySleepTime = 1000; try { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; ServicePointManager.Expect100Continue = true; Dictionary<string, string> data = request.GetDataToSend(); Uri uri = GetFullyQualifiedUri(request.ShortRequestUrl); Dictionary<string, string> processedHeaders = GetProcessedHeaders(); DynamicJsonObject response = serializer.Deserialize(httpService.GetAsPost(GetSecuredUri(uri), data, processedHeaders)); if (retry && response[response.Fields.First()].Errors.Count > 0 && retryCounter < 10) { ConnectionInfo.SecurityToken = GetSecurityToken(); httpService = new HttpService(authManger, ConnectionInfo); Thread.Sleep(retrySleepTime * retryCounter); return DoGetAsPost(request, true, retryCounter++); } return response; } catch (Exception) { if (retryCounter < 10) { Thread.Sleep(retrySleepTime * retryCounter); return DoGetAsPost(request, true, retryCounter++); } throw; } }
/// <summary> /// Performs get as a post action. /// </summary> /// <exception cref="RallyUnavailableException">Rally returned an HTML page. This usually occurs when Rally is off-line. Please check the ErrorMessage property for more information.</exception> /// <exception cref="RallyFailedToDeserializeJson">The JSON returned by Rally was not able to be deserialized. Please check the JsonData property for what was returned by Rally.</exception> private DynamicJsonObject DoGetAsPost(Request request) { Dictionary<string, string> data = request.GetDataToSend(); Uri uri = GetFullyQualifiedUri(request.ShortRequestUrl); string response = httpService.GetAsPost(GetSecuredUri(uri), data, GetProcessedHeaders()); return serializer.Deserialize(response); }