public void ActsAsFactory() { // Arrange var httpClientContainer = new HttpClientContainer(); // Act var httpClient = httpClientContainer.Get(new Uri("http://google.com")); //Assert Assert.That(httpClient, Is.Not.Null); }
protected void Send(int i, int j, HttpClientContainer hcc) { FSending[i][j] = true; HttpMethod hm = new HttpMethod(FMethod[i][j].ToString()); HttpRequestMessage hrm = new HttpRequestMessage(hm, FPath[i][j]); StringContent sc = new StringContent(FContentIn[i][j], Encoding.UTF8, FMediaType[i][j]); hrm.Content = sc; Task <HttpResponseMessage> requesttask = hcc.Send(hrm, FCompletion[i]); FTask[i][j] = requesttask; }
public void DifferentUrisGenerateDifferentClients() { // Arrange var httpClientContainer = new HttpClientContainer(); // Act var httpClient1 = httpClientContainer.Get(new Uri("http://google.com")); var httpClient2 = httpClientContainer.Get(new Uri("http://microsoft.com")); // Assert Assert.That(!object.ReferenceEquals(httpClient1, httpClient2)); }
public void OnlyGeneratesANewInstanceTheFirstTimePerUri() { // Arrange var httpClientContainer = new HttpClientContainer(); // Act var httpClient1 = httpClientContainer.Get(new Uri("http://google.com")); var httpClient2 = httpClientContainer.Get(new Uri("http://google.com")); // Assert Assert.That(object.ReferenceEquals(httpClient1, httpClient2)); }
protected void Send(int i, int j, HttpClientContainer hcc) { FSending[i][j] = true; HttpMethod hm = new HttpMethod(FMethod[i][j].ToString()); HttpRequestMessage hrm = new HttpRequestMessage(hm, FPath[i][j]); if (FMethod[i][j] != SendMethod.Get) { StringContent sc = new StringContent(FContentIn[i][j], Encoding.UTF8, FMediaType[i][j]); hrm.Content = sc; } var request = hcc.Send(hrm, FCompletion[i]); FRequest[i][j] = request; }
public void ReferencesAreKeptOnSuccessiveGenerations() { // Arrange var httpClientContainer = new HttpClientContainer(); // Act var httpClient1 = httpClientContainer.Get(new Uri("http://google.com")); var httpClient2 = httpClientContainer.Get(new Uri("http://microsoft.com")); var httpClient3 = httpClientContainer.Get(new Uri("http://google.com")); var httpClient4 = httpClientContainer.Get(new Uri("http://microsoft.com")); // Assert Assert.That(object.ReferenceEquals(httpClient1, httpClient3)); Assert.That(object.ReferenceEquals(httpClient2, httpClient4)); }
public void Evaluate(int SpreadMax) { if (FClient.IsConnected) { FTask.SliceCount = FClient.SliceCount; FHeaders.SliceCount = FClient.SliceCount; FContent.SliceCount = FClient.SliceCount; FStatus.SliceCount = FClient.SliceCount; FReason.SliceCount = FClient.SliceCount; FSending.SliceCount = FClient.SliceCount; FCompleted.SliceCount = FClient.SliceCount; for (int i = 0; i < FClient.SliceCount; i++) { if (FClient[i] is HttpClientContainer) { int cSpreadMax = 0; cSpreadMax = Math.Max(cSpreadMax, FPath[i].SliceCount); cSpreadMax = Math.Max(cSpreadMax, FContentIn[i].SliceCount); cSpreadMax = Math.Max(cSpreadMax, FMethod[i].SliceCount); cSpreadMax = Math.Max(cSpreadMax, FMediaType[i].SliceCount); FTask[i].SliceCount = cSpreadMax; FHeaders[i].SliceCount = cSpreadMax; FContent[i].SliceCount = cSpreadMax; FStatus[i].SliceCount = cSpreadMax; FReason[i].SliceCount = cSpreadMax; FSending[i].SliceCount = cSpreadMax; FCompleted[i].SliceCount = cSpreadMax; HttpClientContainer hcc = FClient[i] as HttpClientContainer; for (int j = 0; j < cSpreadMax; j++) { FCompleted[i][j] = false; if (FSend[i][j]) { this.Send(i, i, hcc); } if (FTask[i][j] != null) { if (FTask[i][j].IsCompleted) { Stream tmp = new MemoryStream(); if (FSending[i][j]) { FCompleted[i][j] = true; } FHeaders[i][j] = FTask[i][j].Result.Headers; FContent[i][j] = FTask[i][j].Result.Content.ReadAsStreamAsync().Result; FStatus[i][j] = FTask[i][j].Result.StatusCode.ToString(); FReason[i][j] = FTask[i][j].Result.ReasonPhrase; FSending[i][j] = false; if (FLongPoll[i]) { this.Send(i, i, hcc); } } } } } } } }
/// <summary> /// Fluently specify that an existing FlurlClient should be used to call the Url, rather than creating a new one. /// Enables re-using the underlying HttpClient. /// </summary> /// <param name="url">The URL.</param> public static FlurlClient WithFlurlClient(this Url url) { return(url.WithClient(HttpClientContainer.GetClient())); }