Tag: dotnet httpclient

如何实现Portable HttpClient的进度报告

我正在编写一个图书馆,意图在桌面(.Net 4.0及更高版本),手机(WP 7.5及以上版本)和Windows Store(Windows 8及更高版本)应用程序中使用它。 该库具有使用Portable HttpClient库从Internet下载文件的function,并报告下载的进度。 我在这里和互联网的其余部分搜索有关如何实施进度报告的文档和代码示例/指南,这次搜索让我无处可去。 有没有人有文章,文档,指南,代码示例或其他什么来帮助我实现这一目标?

unit testing/集成在Visual Studio 2013中使用HttpClient测试Web API

我很难用Visual Studio 2013测试我的API控制器。我的解决方案有一个Web API项目和一个测试项目。 在我的测试项目中,我有一个unit testing: [TestMethod] public void GetProduct() { HttpConfiguration config = new HttpConfiguration(); HttpServer _server = new HttpServer(config); var client = new HttpClient(_server); var request = new HttpRequestMessage { RequestUri = new Uri(“http://localhost:50892/api/product/hello”), Method = HttpMethod.Get }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); using (var response = client.SendAsync(request).Result) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var test = response.Content.ReadAsAsync().Result; } […]

取消HttpClient请求 – 为什么TaskCanceledException.CancellationToken.IsCancellationRequested为false?

给出以下代码: var cts = new CancellationTokenSource(); try { // get a “hot” task var task = new HttpClient().GetAsync(“http://www.google.com”, cts.Token); // request cancellation cts.Cancel(); await task; // pass: Assert.Fail(“expected TaskCanceledException to be thrown”); } catch (TaskCanceledException ex) { // pass: Assert.IsTrue(cts.Token.IsCancellationRequested, “expected cancellation requested on original token”); // fail: Assert.IsTrue(ex.CancellationToken.IsCancellationRequested, “expected cancellation requested on token attached […]

使用HttpClient将字节数组发布到Web API服务器

我想将此数据发布到Web API服务器: public sealed class SomePostRequest { public int Id { get; set; } public byte[] Content { get; set; } } 将此代码用于服务器: [Route(“Incoming”)] [ValidateModel] public async Task PostIncomingData(SomePostRequest requestData) { // POST logic here } 这个 – 对于客户: var client = new HttpClient(); client.BaseAddress = new Uri(“http://localhost:25001/”); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue(“application/json”)); var content = […]

重试HttpClient不成功的请求

我正在构建一个给出HttpContent对象的函数,它将发出请求并在失败时重试。 但是我得到exception,说HttpContent对象在发出请求后被处理掉。 无论如何都要复制或复制HttpContent对象,以便我可以发出多个请求。 public HttpResponseMessage ExecuteWithRetry(string url, HttpContent content) { HttpResponseMessage result = null; bool success = false; do { using (var client = new HttpClient()) { result = client.PostAsync(url, content).Result; success = result.IsSuccessStatusCode; } } while (!success); return result; } // Works with no exception if first request is successful ExecuteWithRetry(“http://www.requestb.in/xfxcva” /*valid url*/, new […]