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


C# WebRequest.EndGetRequestStream方法代码示例

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


在下文中一共展示了WebRequest.EndGetRequestStream方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: GetRequestStreamInternal

        private static Stream GetRequestStreamInternal(WebRequest request)
        {
            // build the envent
			using (var revent = new ManualResetEvent(false))
			{
				// start the async call
				IAsyncResult result = request.BeginGetRequestStream(CallStreamCallback, revent);

				// wait for event
				revent.WaitOne();

				// return data stream
				return request.EndGetRequestStream(result);
			}
        }        
开发者ID:haoasqui,项目名称:ONLYOFFICE-Server,代码行数:15,代码来源:WebRequestStreamHelper.cs

示例3: RequestAsync

        private static void RequestAsync(WebRequest request, byte[] bodyBytes, Action<TrackResult> callback)
        {
            request.BeginGetRequestStream((r1) =>
            {
                try
                {
                    var stream = request.EndGetRequestStream(r1);
                    stream.BeginWrite(bodyBytes, 0, bodyBytes.Length, (r2) =>
                    {
                        try
                        {
                            stream.EndWrite(r2);
                            stream.Dispose();

                            request.BeginGetResponse((r3) =>
                            {
                                try
                                {
                                    using (var response = request.EndGetResponse(r3))
                                    {
                                        using (var reader = new StreamReader(response.GetResponseStream()))
                                        {
                                            if (callback != null)
                                                callback(new TrackResult(reader.ReadToEnd()));
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    HandleError(callback, ex);
                                }
                            }, null);
                        }
                        catch (Exception ex)
                        {
                            HandleError(callback, ex);
                        }
                    }, null);
                }
                catch(Exception ex)
                {
                    HandleError(callback, ex);
                }
            }, null);
        }
开发者ID:gsdean,项目名称:Mixpanel.NET,代码行数:45,代码来源:MixpanelAsyncHttp.cs

示例4: OnGetRequestStreamCompleted

        private void OnGetRequestStreamCompleted(IAsyncResult ar, WebRequest request, byte[] data)
        {
            Debug.Assert(ar != null);
            Debug.Assert(request != null);
            Debug.Assert(data != null);
            Debug.Assert(data.Length > 0);

            try
            {
                using (var output = request.EndGetRequestStream(ar))
                    output.Write(data, 0, data.Length);
                request.BeginGetResponse(OnGetResponseCompleted, request);
            }
            catch (Exception e)
            {
                OnWebPostError(request, e);
            }
        }
开发者ID:elmah,项目名称:Elmah,代码行数:18,代码来源:ErrorTweetModule.cs

示例5: OnGetRequestStreamCompleted

 private void OnGetRequestStreamCompleted(IAsyncResult ar, WebRequest request, byte[] data)
 {
     try {
         using (var output = request.EndGetRequestStream(ar)) {
             output.Write(data, 0, data.Length);
         }
         request.BeginGetResponse(OnGetResponseCompleted, request);
     }
     catch (Exception e) {
         OnWebPostError(request, e);
     }
 }
开发者ID:Richard-West,项目名称:Log4Slack,代码行数:12,代码来源:SlackClient.cs

示例6: BeginProcessRequest

		void BeginProcessRequest (HttpChannelRequestAsyncResult result)
		{
			Message message = result.Message;
			TimeSpan timeout = result.Timeout;
			// FIXME: is distination really like this?
			Uri destination = message.Headers.To;
			if (destination == null) {
				if (source.Transport.ManualAddressing)
					throw new InvalidOperationException ("When manual addressing is enabled on the transport, every request messages must be set its destination address.");
				 else
				 	destination = Via ?? RemoteAddress.Uri;
			}

			web_request = HttpWebRequest.Create (destination);
			web_request.Method = "POST";
			web_request.ContentType = Encoder.ContentType;

#if NET_2_1
			var cmgr = source.GetProperty<IHttpCookieContainerManager> ();
			if (cmgr != null)
				((HttpWebRequest) web_request).CookieContainer = cmgr.CookieContainer;
#endif

#if !MOONLIGHT // until we support NetworkCredential like SL4 will do.
			// client authentication (while SL3 has NetworkCredential class, it is not implemented yet. So, it is non-SL only.)
			var httpbe = (HttpTransportBindingElement) source.Transport;
			string authType = null;
			switch (httpbe.AuthenticationScheme) {
			// AuthenticationSchemes.Anonymous is the default, ignored.
			case AuthenticationSchemes.Basic:
				authType = "Basic";
				break;
			case AuthenticationSchemes.Digest:
				authType = "Digest";
				break;
			case AuthenticationSchemes.Ntlm:
				authType = "Ntlm";
				break;
			case AuthenticationSchemes.Negotiate:
				authType = "Negotiate";
				break;
			}
			if (authType != null) {
				var cred = source.ClientCredentials;
				string user = cred != null ? cred.UserName.UserName : null;
				string pwd = cred != null ? cred.UserName.Password : null;
				if (String.IsNullOrEmpty (user))
					throw new InvalidOperationException (String.Format ("Use ClientCredentials to specify a user name for required HTTP {0} authentication.", authType));
				var nc = new NetworkCredential (user, pwd);
				web_request.Credentials = nc;
				// FIXME: it is said required in SL4, but it blocks full WCF.
				//web_request.UseDefaultCredentials = false;
			}
#endif

#if !NET_2_1 // FIXME: implement this to not depend on Timeout property
			web_request.Timeout = (int) timeout.TotalMilliseconds;
#endif

			// There is no SOAP Action/To header when AddressingVersion is None.
			if (message.Version.Envelope.Equals (EnvelopeVersion.Soap11) ||
			    message.Version.Addressing.Equals (AddressingVersion.None)) {
				if (message.Headers.Action != null) {
					web_request.Headers ["SOAPAction"] = String.Concat ("\"", message.Headers.Action, "\"");
					message.Headers.RemoveAll ("Action", message.Version.Addressing.Namespace);
				}
			}

			// apply HttpRequestMessageProperty if exists.
			bool suppressEntityBody = false;
#if !NET_2_1
			string pname = HttpRequestMessageProperty.Name;
			if (message.Properties.ContainsKey (pname)) {
				HttpRequestMessageProperty hp = (HttpRequestMessageProperty) message.Properties [pname];
				web_request.Headers.Clear ();
				web_request.Headers.Add (hp.Headers);
				web_request.Method = hp.Method;
				// FIXME: do we have to handle hp.QueryString ?
				if (hp.SuppressEntityBody)
					suppressEntityBody = true;
			}
#endif

			if (!suppressEntityBody && String.Compare (web_request.Method, "GET", StringComparison.OrdinalIgnoreCase) != 0) {
				MemoryStream buffer = new MemoryStream ();
				Encoder.WriteMessage (message, buffer);

				if (buffer.Length > int.MaxValue)
					throw new InvalidOperationException ("The argument message is too large.");

#if !NET_2_1
				web_request.ContentLength = (int) buffer.Length;
#endif

				web_request.BeginGetRequestStream (delegate (IAsyncResult r) {
					try {
						result.CompletedSynchronously &= r.CompletedSynchronously;
						using (Stream s = web_request.EndGetRequestStream (r))
							s.Write (buffer.GetBuffer (), 0, (int) buffer.Length);
						web_request.BeginGetResponse (GotResponse, result);
//.........这里部分代码省略.........
开发者ID:stabbylambda,项目名称:mono,代码行数:101,代码来源:HttpRequestChannel.cs

示例7: PostRequest

        private static void PostRequest(WebRequest request, IAsyncResult ar, byte[] data)
        {
            using (var output = request.EndGetRequestStream(ar))
            {
                output.Write(data, 0, data.Length);
            }

            request.BeginGetResponse(ErrorReportingAsyncCallback(rar => request.EndGetResponse(rar).Close()), null);
        }
开发者ID:jglozano,项目名称:NLogSpike,代码行数:9,代码来源:ElmahRErrorLog.cs

示例8: CreateMultiPartRequest

        private static void CreateMultiPartRequest(WebRequest request, IAsyncResult asyncResult, List<MimePart> parts)
        {
            string boundary = DateTime.Now.Ticks.ToString("x");
            request.ContentType = "multipart/form-data; boundary=" + boundary;

            using (Stream postStream = request.EndGetRequestStream(asyncResult))
            {
                foreach (MimePart part in parts)
                {
                    if (part.IsFile)
                    {
                        StringBuilder sbHeader = new StringBuilder();
                        sbHeader.AppendFormat("--{0}", boundary);
                        sbHeader.Append("\r\n");
                        sbHeader.AppendFormat("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\";", part.Name, part.Filename);
                        sbHeader.Append("\r\n");
                        sbHeader.AppendFormat("Content-Type: {0}", part.ContentType);
                        sbHeader.Append("\r\n");
                        sbHeader.Append("\r\n");
                        byte[] header = Encoding.UTF8.GetBytes(sbHeader.ToString());
                        postStream.Write(header, 0, header.Length);
                        part.Stream.CopyTo(postStream);
                        byte[] crlf = Encoding.UTF8.GetBytes("\r\n");
                        postStream.Write(crlf, 0, crlf.Length);
                    }
                    else
                    {
                        StringBuilder sbHeader = new StringBuilder();
                        sbHeader.AppendFormat("--{0}", boundary);
                        sbHeader.Append("\r\n");
                        sbHeader.AppendFormat("Content-Disposition: form-data; name=\"{0}\";", part.Name);
                        sbHeader.Append("\r\n");
                        sbHeader.AppendFormat("Content-Type: {0}; charset=UTF-8", part.ContentType);
                        sbHeader.Append("\r\n");
                        sbHeader.Append("\r\n");
                        sbHeader.Append(part.Value);
                        sbHeader.Append("\r\n");

                        byte[] header = Encoding.UTF8.GetBytes(sbHeader.ToString());
                        postStream.Write(header, 0, header.Length);
                    }
                }

                byte[] footer = Encoding.UTF8.GetBytes("--" + boundary + "--\r\n");
                postStream.Write(footer, 0, footer.Length);
            }
        }
开发者ID:rtaylornc,项目名称:IntelliMediaCore,代码行数:47,代码来源:HttpClient.cs

示例9: CreateSinglePartRequest

        private static void CreateSinglePartRequest(WebRequest request, IAsyncResult asyncResult, MimePart part)
        {
            // End the operation
            using (Stream postStream = request.EndGetRequestStream(asyncResult))
            {
                if (!part.IsFile)
                {
                    request.ContentType = string.Format("{0}; charset=UTF-8", part.ContentType);

                    // Write text value into the HTTP request
                    byte[] byteArray = Encoding.UTF8.GetBytes(part.Value);
                    postStream.Write(byteArray, 0, byteArray.Length);
                }
                else
                {
                    request.ContentType = part.ContentType;
                    // Copy binary data to HTTP request
                    part.Stream.CopyTo(postStream);
                }
            }
        }
开发者ID:rtaylornc,项目名称:IntelliMediaCore,代码行数:21,代码来源:HttpClient.cs

示例10: GetRequestStream

 private Stream GetRequestStream(WebRequest request)
 {
     AutoResetEvent autoResetEvent = new AutoResetEvent(false);
     IAsyncResult asyncResult = request.BeginGetRequestStream(r => autoResetEvent.Set(), null);
     autoResetEvent.WaitOne();
     return request.EndGetRequestStream(asyncResult);
 }
开发者ID:jhskailand,项目名称:PortableWebClient,代码行数:7,代码来源:PortableWebClient.cs

示例11: SendDataAsyncTPL

		private ServiceResponse SendDataAsyncTPL(WebRequest request, byte[] data)
		{
			try
			{
				Task.Factory.FromAsync(
					request.BeginGetRequestStream,
					asyncResult => request.EndGetRequestStream(asyncResult),
					null)
				.ContinueWith((t) =>
				{
					var stream = (Stream)t.Result;
					stream.Write(data, 0, data.Length);
				})
				.Wait();
			}
			catch (AggregateException ae)
			{
				throw MappedAggregateException(ae);
			}

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

示例12: SetPostData

 private static void SetPostData(object postdata, WebRequest request)
 {
     using (System.Threading.ManualResetEvent man = new System.Threading.ManualResetEvent(false))
     {
         request.Method = "POST";
         System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(postdata.GetType());
         using (var mem = new System.IO.MemoryStream())
         {
             serializer.WriteObject(mem, postdata);
             mem.Position = 0;
             request.ContentLength = mem.Length;
             request.BeginGetRequestStream((s) =>
             {
                 using (var postStream = request.EndGetRequestStream(s))
                 {
                     mem.CopyTo(postStream);
                 }
                 man.Set();
             }, null);
             man.WaitOne();
         }
     }
 }
开发者ID:jzi96,项目名称:JiraClient.SL,代码行数:23,代码来源:JiraRestWrapperService.cs

示例13: GetRequestStream

 internal Stream GetRequestStream(WebRequest request)
 {
     Stream stream = null;
     request.BeginGetRequestStream(a =>
     {
         stream = request.EndGetRequestStream(a);
         allDone.Set();
     }, null);
     allDone.WaitOne(TimeSpan.FromSeconds(30));
     return stream;
 }
开发者ID:mobeelizer,项目名称:wp7-sdk,代码行数:11,代码来源:MobeelizerConnectionService.cs


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