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


C# WebRequest.GetRequestStreamAsync方法代码示例

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


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

示例1: SetUp

        public void SetUp()
        {
            var uri = OAuthRequestHandler.OAuthRequestUri;
            var factory = new TestWebRequestFactory();
            factory.RegisterResultForUri(uri.AbsoluteUri, "null");
            _request = factory.Create(uri);

            _stream = new MemoryStream();
            _request.EndGetRequestStream(Arg.Any<IAsyncResult>()).Returns(c => _stream);
            _request.GetRequestStreamAsync().Returns(async c => (Stream)_stream);

            _handler = new OAuthRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "http://desktop/"));

        }
开发者ID:warpzone81,项目名称:AccountRight_Live_API_.Net_SDK,代码行数:14,代码来源:OAuthRequestHandlerTests.cs

示例2: UploadValuesTaskAsyncCore

		async Task<byte[]> UploadValuesTaskAsyncCore (WebRequest request, NameValueCollection data,
		                                              CancellationToken token)
		{
			token.ThrowIfCancellationRequested ();
			string cType = Headers ["Content-Type"];
			if (cType != null && String.Compare (cType, urlEncodedCType, true) != 0)
				throw new WebException ("Content-Type header cannot be changed from its default " +
							"value for this request.");

			WebResponse response = null;

			Headers ["Content-Type"] = urlEncodedCType;
			try {
				MemoryStream tmpStream = new MemoryStream ();
				foreach (string key in data) {
					byte [] bytes = Encoding.UTF8.GetBytes (key);
					UrlEncodeAndWrite (tmpStream, bytes);
					tmpStream.WriteByte ((byte) '=');
					bytes = Encoding.UTF8.GetBytes (data [key]);
					UrlEncodeAndWrite (tmpStream, bytes);
					tmpStream.WriteByte ((byte) '&');
				}

				token.ThrowIfCancellationRequested ();
				
				int length = (int) tmpStream.Length;
				if (length > 0)
					tmpStream.SetLength (--length); // remove trailing '&'
				
				byte [] buf = tmpStream.GetBuffer ();
				request.ContentLength = length;
				using (Stream rqStream = await request.GetRequestStreamAsync ()) {
					await rqStream.WriteAsync (buf, 0, length, token);
				}
				tmpStream.Close ();

				response = await GetWebResponseTaskAsync (request, token);
				return await ReadAllTaskAsync (request, response, token);
			} finally {
				if (response != null)
					response.Close ();
			}
		}
开发者ID:carrie901,项目名称:mono,代码行数:43,代码来源:WebClient.cs

示例3: UploadDataTaskAsyncCore

		async Task<byte[]> UploadDataTaskAsyncCore (WebRequest request, byte[] data, CancellationToken token)
		{
			token.ThrowIfCancellationRequested ();

			int contentLength = data.Length;
			request.ContentLength = contentLength;
			using (Stream stream = await request.GetRequestStreamAsync ()) {
				token.ThrowIfCancellationRequested ();
				await stream.WriteAsync (data, 0, contentLength, token);
				token.ThrowIfCancellationRequested ();
			}

			WebResponse response = null;

			try {
				response = await GetWebResponseTaskAsync (request, token);
				return await ReadAllTaskAsync (request, response, token);
			} finally {
				if (response != null)
					response.Close ();
			}
		}
开发者ID:carrie901,项目名称:mono,代码行数:22,代码来源:WebClient.cs

示例4: UploadFileTaskAsyncCore

		async Task<byte[]> UploadFileTaskAsyncCore (WebRequest request, string method,
		                                            string fileName, CancellationToken token)
		{
			token.ThrowIfCancellationRequested ();

			string fileCType = Headers ["Content-Type"];
			if (fileCType != null) {
				string lower = fileCType.ToLower ();
				if (lower.StartsWith ("multipart/"))
					throw new WebException ("Content-Type cannot be set to a multipart" +
								" type for this request.");
			} else {
				fileCType = "application/octet-stream";
			}

			bool needs_boundary = (method != "PUT"); // only verified case so far
			string boundary = null;
			if (needs_boundary) {
				boundary = "------------" + DateTime.Now.Ticks.ToString ("x");
				Headers ["Content-Type"] = String.Format ("multipart/form-data; boundary={0}", boundary);
			}
			Stream reqStream = null;
			Stream fStream = null;
			WebResponse response = null;

			fileName = Path.GetFullPath (fileName);

			try {
				fStream = File.OpenRead (fileName);
				token.ThrowIfCancellationRequested ();
				reqStream = await request.GetRequestStreamAsync ();
				token.ThrowIfCancellationRequested ();
				byte [] bytes_boundary = null;
				if (needs_boundary) {
					bytes_boundary = Encoding.ASCII.GetBytes (boundary);
					using (MemoryStream ms = new MemoryStream ()) {
						ms.WriteByte ((byte) '-');
						ms.WriteByte ((byte) '-');
						ms.Write (bytes_boundary, 0, bytes_boundary.Length);
						ms.WriteByte ((byte) '\r');
						ms.WriteByte ((byte) '\n');
						string partHeaders = String.Format (
							"Content-Disposition: form-data; " +
							"name=\"file\"; filename=\"{0}\"\r\n" +
							"Content-Type: {1}\r\n\r\n",
							Path.GetFileName (fileName), fileCType);
						byte [] partHeadersBytes = Encoding.UTF8.GetBytes (partHeaders);
						ms.Write (partHeadersBytes, 0, partHeadersBytes.Length);
						await ms.CopyToAsync (reqStream, (int)ms.Position, token);
					}
				}
				int nread;
				long bytes_sent = 0;
				long file_size = -1;
				long step = 16384; // every 16kB
				if (fStream.CanSeek) {
					file_size = fStream.Length;
					step = file_size / 100;
				}
				var upload_args = new UploadProgressChangedEventArgs (0, 0, bytes_sent, file_size, 0, null);
				OnUploadProgressChanged (upload_args);
				byte [] buffer = new byte [4096];
				long sum = 0;
				token.ThrowIfCancellationRequested ();
				while ((nread = await fStream.ReadAsync (buffer, 0, 4096, token)) > 0) {
					token.ThrowIfCancellationRequested ();
					await reqStream.WriteAsync (buffer, 0, nread, token);
					bytes_sent += nread;
					sum += nread;
					if (sum >= step || nread < 4096) {
						int percent = 0;
						if (file_size > 0)
							percent = (int) (bytes_sent * 100 / file_size);
						upload_args = new UploadProgressChangedEventArgs (0, 0, bytes_sent, file_size, percent, null);
						OnUploadProgressChanged (upload_args);
						sum = 0;
					}
				}

				if (needs_boundary) {
					using (MemoryStream ms = new MemoryStream ()) {
						ms.WriteByte ((byte) '\r');
						ms.WriteByte ((byte) '\n');
						ms.WriteByte ((byte) '-');
						ms.WriteByte ((byte) '-');
						ms.Write (bytes_boundary, 0, bytes_boundary.Length);
						ms.WriteByte ((byte) '-');
						ms.WriteByte ((byte) '-');
						ms.WriteByte ((byte) '\r');
						ms.WriteByte ((byte) '\n');
						await ms.CopyToAsync (reqStream, (int)ms.Position, token);
					}
				}
				reqStream.Close ();
				reqStream = null;

				response = await GetWebResponseTaskAsync (request, token);
				return await ReadAllTaskAsync (request, response, token);
			} finally {
				if (fStream != null)
//.........这里部分代码省略.........
开发者ID:carrie901,项目名称:mono,代码行数:101,代码来源:WebClient.cs

示例5: 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

示例6: UploadValuesTaskAsyncCore

		async Task<byte[]> UploadValuesTaskAsyncCore (WebRequest request, NameValueCollection data,
		                                              CancellationToken token)
		{
			token.ThrowIfCancellationRequested ();

			WebResponse response = null;
			try {
				MemoryStream tmpStream = new MemoryStream ();
				foreach (string key in data) {
					byte [] bytes = Encoding.UTF8.GetBytes (key);
					UrlEncodeAndWrite (tmpStream, bytes);
					tmpStream.WriteByte ((byte) '=');
					bytes = Encoding.UTF8.GetBytes (data [key]);
					UrlEncodeAndWrite (tmpStream, bytes);
					tmpStream.WriteByte ((byte) '&');
				}

				token.ThrowIfCancellationRequested ();
				
				int length = (int) tmpStream.Length;
				if (length > 0)
					tmpStream.SetLength (--length); // remove trailing '&'
				
				byte [] buf = tmpStream.GetBuffer ();
				request.ContentLength = length;
				using (Stream rqStream = await request.GetRequestStreamAsync ().ConfigureAwait (false)) {
					await rqStream.WriteAsync (buf, 0, length, token).ConfigureAwait (false);
				}
				tmpStream.Close ();

				response = await GetWebResponseTaskAsync (request, token).ConfigureAwait (false);
				return await ReadAllTaskAsync (request, response, token).ConfigureAwait (false);
			} finally {
				if (response != null)
					response.Close ();
			}
		}
开发者ID:genoher,项目名称:mono,代码行数:37,代码来源:WebClient.cs

示例7: SetBodyStream

 /// <summary>
 /// 	Sets the body stream of the HTTP request.
 /// </summary>
 /// <param name="request">Request that is being executed.</param>
 /// <param name="body">Body that is to be set with the HTTP request.</param>
 static async Task SetBodyStream(WebRequest request, byte[] body)
 {
     try
     {
         var stream = await request.GetRequestStreamAsync();
         stream.WriteTimeout = 30 * 1000;
         stream.Write(body, 0, body.Length);
         stream.Flush();
         stream.Close();
         stream.Dispose();
     }
     catch (Exception ex)
     {
         Debug.WriteLine("[AsyncRequest][SetBodyStream] Error streaming Body of the request: {0}", ex.Message);
     }
 }
开发者ID:igudelj,项目名称:AsyncTaskXamarin,代码行数:21,代码来源:AsyncRequest.cs

示例8: SendDataAsyncAwait

		private async Task<ServiceResponse> SendDataAsyncAwait(WebRequest request, byte[] data)
		{
			try
			{
				var stream = await request.GetRequestStreamAsync();
				stream.Write(data, 0, data.Length);
			}
			catch (AggregateException ae)
			{
				throw MappedAggregateException(ae);
			}

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

示例9: SendRequestAsync

        private async Task<HttpWebResponseWrapper> 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))
            {
                HttpWebResponseWrapper wrapper = null;
                
                var httpResponse = response as HttpWebResponse;
                if (httpResponse != null)
                {
                    // Return content only for 206 for performance reasons
                    // Currently we do not need it in other cases
                    if (httpResponse.StatusCode == HttpStatusCode.PartialContent)
                    {
                        wrapper = new HttpWebResponseWrapper
                        {
                            StatusCode = (int)httpResponse.StatusCode,
                        };

                        if (httpResponse.Headers != null)
                        {
                            wrapper.RetryAfterHeader = httpResponse.Headers["Retry-After"];
                        }

                        using (StreamReader content = new StreamReader(httpResponse.GetResponseStream()))
                        {
                            wrapper.Content = content.ReadToEnd();
                        }
                    }
                }

                return wrapper;
            }
        }
开发者ID:ZeoAlliance,项目名称:ApplicationInsights-dotnet,代码行数:38,代码来源:Transmission.cs


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