Tag: webrequest

处理RestRequest RestSharp的对象?

我正在使用RestSharp并创建RestRequest对象以将FileData发送到API。 但是在得到响应之后我想从我的本地机器上删除该文件但是当我尝试做同样的事情时它会给我一个错误“ 文件被其他进程使用 ”。 我认为的原因是我无法处理RestRequest的对象。 请帮我解决一下。 以下是代码。 提前致谢..!!! public string PostMultiformDataAPI(Method method, string apiUrl, string data = “”, Dictionary headers = null) { string[] files = null; try { RestClient client = new RestClient(apiUrl); var request = new RestRequest(); request.Method = method; //Add header values to request if (headers != null) { foreach (var header […]

HttpWebRequest BeginGetResponse回调未在WP8上触发(在WP7上工作)

我遇到的问题是以前的应用程序没有使用WP8,它在WP7上运行得很好。 这是我用于http请求的代码: public void SendMessage() { request = WebRequest.Create(uri) as HttpWebRequest; request.Method = “POST”; request.AllowReadStreamBuffering = true; request.ContentType = “application/octet-stream”; try { // get device info String deviceInfo = String.Format(“platform,{0};os,{1};width,{2};height,{3};dpi,{4};”, Config.PLATFORM_NAME, Environment.OSVersion.Version.ToString(), System.Windows.Application.Current.Host.Content.ActualWidth.ToString(), System.Windows.Application.Current.Host.Content.ActualHeight.ToString(), 96); request.Headers[“X_MX_DEVICE_INFO”] = deviceInfo; } catch (Exception) {} request.BeginGetRequestStream(new AsyncCallback(ProcessRequestStream), null); } private void ProcessRequestStream(IAsyncResult asyncResult) { if (!message.IsCancelled()) { try […]

如何登录/知道以登录网站并执行操作?

这是一个迷你项目,作为“自学编码马拉松”的一部分,我一直在为我负责。 我需要 登录需要用户/通行证的网站(例如facebook)并返回响应。 我已经设法使用WebRequest和WebResponse类实现了这一点。 下一步是以编程方式向我的导师发送消息 这是我难倒的地方。 如何访问网站的“发送消息”function? 我想我需要首先查找查询参数,我可以使用firebug这样做,但我很困惑,我怎么能坚持我的“登录状态”并发送消息? 我一直在寻找一下,我认为它涉及到cookies,但我不知道如何继续。 谢谢。

随机请求已中止:无法创建SSL / TLS安全通道。 返回的代码= MessageAltered

在大约一千个HTTPS请求中的一个中,抛出以下exception: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) at System.Net.WebClient.DownloadString(Uri address) System.Net中的日志如下所示: 2016-09-20 15:10:17.1031 | INFO | 72 | System.Net | [2688] Associating HttpWebRequest#37618637 with ServicePoint#28841767 2016-09-20 15:10:17.1031 | INFO | 72 | System.Net | [2688] Associating Connection#16407032 with HttpWebRequest#37618637 2016-09-20 15:10:17.1031 | INFO | 72 […]

WebRequest.GetRequestStream和LOH

我使用下面的代码将大文件上传到服务器,并注意到将FileStream复制到GetRequestStream,创建了bytes数组并保存在内存中。 这增加了大对象堆,我不想要它。 也许有人知道如何解决这个问题? Stream formData = new FileStream(…..) HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest; using (Stream requestStream = request.GetRequestStream()) { Helpers.CopyStream(formData, requestStream); requestStream.Close(); } public static void CopyStream(Stream fromStream, Stream toStream) { try { int bytesRead; byte[] buffer = new byte[32768]; while (fromStream != null && (bytesRead = fromStream.Read(buffer, 0, buffer.Length)) > 0) { toStream.Write(buffer, […]

Http Web请求不维护会话

我有程序,我想废弃一些有用的学习材料给我。 这个站点还维护会话密钥和其他一些密钥。 如果我试图去嵌套页面然后它会把我扔出去并显示会话输出消息。 我无法在Web请求类中维护会话密钥。 所以请告诉我如何在Web请求类中维护会话。

同时运行x个Web请求

我们公司有一个Web服务,我想通过我自己的C#中的HTTPWebRequest客户端发送XML文件(存储在我的驱动器上)。 这已经有效了。 Web服务同时支持5个同步请求(一旦服务器上的处理完成,我就从Web服务获得响应)。 每个请求处理大约需要5分钟。 投掷太多请求(> 5)会导致我的客户超时。 此外,这可能导致服务器端的错误和不连贯的数据。 在服务器端进行更改不是一个选项(来自不同的供应商)。 现在,我的Webrequest客户端将发送XML并使用Webrequest等待响应result.AsyncWaitHandle.WaitOne(); 但是,这样,虽然Web服务支持5,但是一次只能处理一个请求。我尝试使用Backgroundworker和Threadpool但是它们同时创建了太多请求,这使得它们对我没用。 有什么建议,怎么可以解决这个问题? 用5个线程创建我自己的Threadpool ? 有什么建议,如何实现呢?

WebException.Response.GetResponseStream()限制为65536个字符

我正在尝试使用HttpWebRequest和HttpWebResponse从网页中检索HTML代码。 response = (HttpWebResponse)request.GetResponse(); … Stream stream = response.GetResponseStream(); 响应对象的ContentLength值为106142.当我查看流对象时,它的长度为65536.使用ReadToEnd()使用StreamReader读取流时,仅返回前65536个字符。 我怎样才能获得整个代码? 编辑: 使用以下代码段: catch (WebException ex) { errorMessage = errorMessage + ex.Message; if (ex.Response != null) { if (ex.Response.ContentLength > 0) { using (Stream stream = ex.Response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { string pageOutput = reader.ReadToEnd().Trim(); ex.Response.ContentLength = 106142 ex.Response.GetResponseStream()。长度= 65536 stream.Length […]

以线程或任务方式启动异步方法

我是C#的新手, await/async ,目前正在玩一下。 在我的场景中,我有一个简单的客户端对象,它具有WebRequest属性。 客户端应该通过WebRequest的RequestStream定期发送alive-messages。 这是client-object的构造函数: public Client() { _webRequest = WebRequest.Create(“some url”); _webRequest.Method = “POST”; IsRunning = true; // –> how to start the ‘async’ method (see below) } 和async alive-sender方法 private async void SendAliveMessageAsync() { const string keepAliveMessage = “{\”message\”: {\”type\”: \”keepalive\”}}”; var seconds = 0; while (IsRunning) { if (seconds % 10 […]

System.Net.ProtocolViolationException:在调用 GetResponse之前,必须将ContentLength字节写入请求流

我得到了 “System.Net.ProtocolViolationException:在调用Web请求的”BeginGetResponse“方法时,必须在调用[Begin] GetResponse”错误之前将ContentLength字节写入请求流。 这是我的代码: try { Stream dataStream = null; WebRequest Webrequest; Webrequest = WebRequest.Create(this.EndPointAddress); Webrequest.Credentials = new NetworkCredential(this.username, this.password); Webrequest.ContentType = “text/xml”; Webrequest.Method = WebRequestMethods.Http.Post; byteArray = System.Text.Encoding.UTF8.GetBytes(xmlRequest.Children[0].InnerXML); Webrequest.ContentLength = byteArray.Length; dataStream = Webrequest.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); RequestState rs = new RequestState(); rs.Request = Webrequest; IAsyncResult r = (IAsyncResult)Webrequest.BeginGetResponse(new AsyncCallback(RespCallback), rs); } catch (Exception […]