当前位置: 首页>>代码示例>>C#>>正文


C# WebRequest.GetResponseAsync方法代码示例

本文整理汇总了C#中System.Net.WebRequest.GetResponseAsync方法的典型用法代码示例。如果您正苦于以下问题:C# WebRequest.GetResponseAsync方法的具体用法?C# WebRequest.GetResponseAsync怎么用?C# WebRequest.GetResponseAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Net.WebRequest的用法示例。


在下文中一共展示了WebRequest.GetResponseAsync方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: _ReadResponseAsync

        private async Task<JObject> _ReadResponseAsync(WebRequest request, string inputAddress)
        {
            HttpWebResponse response;
            try
            {
                response = (HttpWebResponse)(await request.GetResponseAsync().ConfigureAwait(false));
            }
            catch (WebException we)
            {
                response = (HttpWebResponse)we.Response;
            }

            JObject responseJson;
            using (var responseStream = new StreamReader(response.GetResponseStream()))
            {
                var responseStr = await responseStream.ReadToEndAsync().ConfigureAwait(false);
                responseJson = JObject.Parse(responseStr); // I'm fine throwing a parse error here.
            }

            if (response.StatusCode == HttpStatusCode.OK) // Could probably relax this to "non-failing" codes.
            {
                return responseJson;
            }
            else
            {
                throw new Exception(string.Format("Failed call: {0} failed to OCR - code {1} - details\n{2}", 
                    inputAddress, response.StatusCode, responseJson.ToString(Newtonsoft.Json.Formatting.Indented)));
            }
        }
开发者ID:strategist922,项目名称:image-to-entities,代码行数:29,代码来源:ImageToText.cs

示例2: GetWebResponse

		private static async Task<WebResponse> GetWebResponse(WebRequest request)
		{
			WebResponse response = null;
			try
			{
				response = await request.GetResponseAsync().ConfigureAwait(false);
			}
			catch(WebException ex)
			{
				// "WebException status: {0}", ex.Status);

				// Even if the request "failed" we need to continue reading the response from the router
				response = ex.Response as HttpWebResponse;

				if(response == null)
					throw;

				var stream = response.GetResponseStream();
				var bytesToRead = (int)response.ContentLength;
				var buffer = stream.ReadBytes(bytesToRead);
				response.Dispose();
				throw new RestApiException(Encoding.UTF8.GetString(buffer, 0, buffer.Length - 2), ex);
			}
			return response;
		}
开发者ID:woutersmit,项目名称:NBitcoin,代码行数:25,代码来源:RestClient.cs

示例3: Transact

        private async Task Transact(WebRequest wreq, Action<object> receive)
        {

            // read response
            object rdata = null;
            using (var wres = await wreq.GetResponseAsync())
            using (var sres = wres.GetResponseStream())
            {
                var ms = new MemoryStream();
                await sres.CopyToAsync(ms);

                ms.Position = 0;
                using (var sreader = new StreamReader(ms))
                {
                    var sdata = sreader.ReadToEnd();

                    if (null != Parse)
                    {
                        rdata = Parse(sdata);
                    }
                    else
                    {
                        rdata = sdata;
                    }
                }
            }

            Dispatcher.Invoke(() => receive(rdata));
        }
开发者ID:thomas13335,项目名称:wpf2html5,代码行数:29,代码来源:JsonWebRequest.cs

示例4: InfoAnswerAsync

 public  async Task<string> InfoAnswerAsync(WebRequest request)
 {
     using (var response = await request.GetResponseAsync())
     {
         using (var stream = response.GetResponseStream())
             if (stream != null)
                 using (var reader = new StreamReader(stream))
                 {
                     return await reader.ReadToEndAsync();
                 }
     }
     return "";
 }
开发者ID:yuritekvalet,项目名称:Weather,代码行数:13,代码来源:Answer.cs

示例5: GetResponseTask

 protected async Task<Tuple<HttpStatusCode, string, Stream>> GetResponseTask(WebRequest request, CancellationToken cancellationToken)
 {
     var response = await request.GetResponseAsync(cancellationToken);
     var location = response.Headers[LocationHeader];
     var statusCode = (response as HttpWebResponse).Maybe(_ => _.StatusCode);
     if (_helper.IsGZipped((HttpWebResponse)response))
     {
         var entityCompressed = _helper.ExtractCompressedEntity(response);
         return new Tuple<HttpStatusCode, string, Stream>(statusCode, location, entityCompressed);
     }
     var entityNormal = response.GetResponseStream();
     return new Tuple<HttpStatusCode, string, Stream>(statusCode, location, entityNormal);
 }
开发者ID:warpzone81,项目名称:AccountRight_Live_API_.Net_SDK,代码行数:13,代码来源:ApiStreamRequestHandler.cs

示例6: GetRequestAsync

        public async Task<string> GetRequestAsync(string url)
        {
            request = WebRequest.Create(url);
            request.Method = "GET";
            WebResponse response = await request.GetResponseAsync();
            // Get the stream containing all content returned by the requested server.
            Stream dataStream = response.GetResponseStream();

            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);

            // Read the content fully up to the end.
            return reader.ReadToEnd();
        }
开发者ID:Satur01,项目名称:MapaEcobici,代码行数:14,代码来源:HttpCommunicator.cs

示例7: SendRequestAsyncAwait

		private ServiceResponse SendRequestAsyncAwait(WebRequest request)
		{
			Func<Task<ServiceResponse>> getResponse = async () =>
			{
				var response = await request.GetResponseAsync();
				var reader = new StreamReader(response.GetResponseStream());
				var message = reader.ReadToEnd();
				return new ServiceResponse() { IsSuccess = true, Message = message };
			};

			return _retryPolicy.ExecuteAction<ServiceResponse>(() =>
			{
				try
				{
					return getResponse().Result;
				}
				catch (AggregateException ae)
				{
					throw MappedAggregateException(ae);
				}

			});
		}
开发者ID:tarwn,项目名称:TestableHttpWebResponse,代码行数:23,代码来源:SampleService.cs

示例8: SendRequestAsync

        private async Task SendRequestAsync(WebRequest request)
        {
            using (Stream requestStream = await request.GetRequestStreamAsync().ConfigureAwait(false))
            {
                await requestStream.WriteAsync(this.Content, 0, this.Content.Length).ConfigureAwait(false);
            }

            using (WebResponse response = await request.GetResponseAsync().ConfigureAwait(false))
            {
            }
        }
开发者ID:JoseCarlosMM,项目名称:ApplicationInsights-dotnet,代码行数:11,代码来源:Transmission.cs

示例9: GetWebResponseAsync

 public async Task<WebResponse> GetWebResponseAsync(WebRequest webRequest)
 {
     return await webRequest.GetResponseAsync();
 }
开发者ID:SowaLabs,项目名称:Tweetinvi-obsolete,代码行数:4,代码来源:WebHelper.cs

示例10: ExecuteWebRequestAsync

		private static async Task<string> ExecuteWebRequestAsync(WebRequest request)
		{
			ExceptionDispatchInfo capturedException;

			try
			{
				using (var response = await request.GetResponseAsync())
				{
					return await ReadStreamAsync(response.GetResponseStream());
				}
			}
			catch (WebException ex)
			{
				if (ex.Response == null)
				{
					throw;
				}
				capturedException = ExceptionDispatchInfo.Capture(ex);
			}

			var wex = (WebException)capturedException.SourceException;
			var statusCode = ((HttpWebResponse)wex.Response).StatusCode;

			using (var stream = wex.Response.GetResponseStream())
			{
				var result = await ReadStreamAsync(stream);
				var stripeError = request.RequestUri.ToString().Contains("oauth")
					                  ? Mapper<StripeError>.MapFromJson(result)
					                  : Mapper<StripeError>.MapFromJson(result, "error");

				throw new StripeException(statusCode, stripeError, stripeError.Message);
			}
		}
开发者ID:jbarker4682,项目名称:stripe.net,代码行数:33,代码来源:Requestor.cs

示例11: ExecuteWebRequestAsync

        private static async Task<string> ExecuteWebRequestAsync(WebRequest webRequest)
        {
            try
            {
                using (var response = await webRequest.GetResponseAsync())
                {
                    return await ReadStreamAsync(response.GetResponseStream());
                }
            }
            catch (WebException webException)
            {
                if (webException.Response != null)
                {
                    var statusCode = ((HttpWebResponse)webException.Response).StatusCode;

                    var stripeError = new StripeError();

                    if (webRequest.RequestUri.ToString().Contains("oauth"))
                        stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()));
                    else
                        stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()), "error");

                    throw new StripeException(statusCode, stripeError, stripeError.Message);
                }

                throw;
            }
        }
开发者ID:shirley-truong-volusion,项目名称:stripe.net,代码行数:28,代码来源:Requestor.cs

示例12: _getResponseAsync

 static IEnumerable<Task> _getResponseAsync(TaskCompletionSource<WebResponse> tcs, WebRequest request, TimeSpan timeout)
 {
     using (var cancellation_token = new Concurrency.TimeoutToken(timeout))
     using (var registration_token = cancellation_token.Token.Register(() => { request.Abort(); }))
     {
         using (var task_get_response = request.GetResponseAsync())
         {
             yield return task_get_response;
             tcs.SetFromTask(task_get_response);
             yield break;
         }
     }
 }
开发者ID:AlphaStaxLLC,项目名称:availability-proxy-for-rest-services,代码行数:13,代码来源:Helpers.cs

示例13: DownloadAndSavePhoto

 private static async Task DownloadAndSavePhoto(string targetFileName, WebRequest request, byte[] buffer)
 {
     using (var target = new FileStream(targetFileName, FileMode.Create, FileAccess.Write))
     {
         using (WebResponse response = await request.GetResponseAsync())
         {
             using (Stream stream = response.GetResponseStream())
             {
                 int read;
                 while ((read = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
                 {
                     await target.WriteAsync(buffer, 0, read);
                 }
             }
         }
     }
 }
开发者ID:flickr-downloadr,项目名称:flickr-downloadr,代码行数:17,代码来源:DownloadLogic.cs

示例14: ReadJsonInternalAsync

		private async Task<RavenJToken> ReadJsonInternalAsync(WebRequest responseTask)
		{
			WebResponse response;
			try
			{
                response = await responseTask.GetResponseAsync().ConfigureAwait(false);
				sp.Stop();
			}
			catch (WebException e)
			{
				sp.Stop();
				var result = HandleErrors(e);
				if (result == null)
					throw;
				return result;
			}

			ResponseHeaders = new NameValueCollection(response.Headers);
			ResponseStatusCode = ((HttpWebResponse)response).StatusCode;

			HandleReplicationStatusChanges(ResponseHeaders, primaryUrl, operationUrl);

			using (response)
			using (var responseStream = response.GetResponseStreamWithHttpDecompression())
			{
                var data = await RavenJToken.TryLoadAsync(responseStream).ConfigureAwait(false);

				if (Method == "GET" && ShouldCacheRequest)
				{
					factory.CacheResponse(Url, data, ResponseHeaders);
				}

				factory.InvokeLogRequest(owner, () => new RequestResultArgs
				{
					DurationMilliseconds = CalculateDuration(),
					Method = webRequest.Method,
					HttpResult = (int) ResponseStatusCode,
					Status = RequestStatus.SentToServer,
					Result = (data ?? "").ToString(),
					Url = webRequest.RequestUri.PathAndQuery,
					PostedData = postedData
				});

				return data;
			}
		}
开发者ID:925coder,项目名称:ravendb,代码行数:46,代码来源:HttpJsonRequest.cs

示例15: GetWebResponse

        private static async Task<WebResponse> GetWebResponse(WebRequest request)
        {
            WebResponse response;
            try
            {
                response = await request.GetResponseAsync().ConfigureAwait(false);
            }
            catch (WebException ex)
            {
                NatDiscoverer.TraceSource.TraceEvent(TraceEventType.Verbose, 0, "WebException status: {0}", ex.Status);

                // Even if the request "failed" we need to continue reading the response from the router
                response = ex.Response as HttpWebResponse;

                if (response == null)
                    throw;
            }
            return response;
        }
开发者ID:haroldma,项目名称:Universal.Nat,代码行数:19,代码来源:SoapClient.cs


注:本文中的System.Net.WebRequest.GetResponseAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。