Tag: httpwebrequest

Xamarin上的WebHeaderCollection和HttpWebRequest

我正在尝试将我的项目从Mac上的Xamarin Studio移植到Windows 7上的Visual Studio 2012.在Mac和XS上工作正常。 在VisualStudio 2012上,我遇到了以下两个问题: 错误3’System.Net.WebHeaderCollection’不包含’Add’的定义,也没有扩展方法’Add’接受类型’System.Net.WebHeaderCollection’的第一个参数可以找到(你是否缺少using指令或者程序集引用?)C:\ Users \ user \ Documents \ Visual Studio 2012 \ Projects \ MyProject \ MyProject.Core \ Services \ MyProjectService.cs 错误4’System.Net.HttpWebRequest’不包含’GetResponse’的定义,并且没有可以找到接受类型’System.Net.HttpWebRequest’的第一个参数的扩展方法’GetResponse’(你是否缺少using指令或者程序集引用?)C:\ Users \ user \ Documents \ Visual Studio 2012 \ Projects \ MyProject \ MyProject.Core \ Services \ MyProjectService.cs 在那段代码上: var request = WebRequest.Create(“https://www.myaddress.com/test/”) as HttpWebRequest; request.Method […]

如何在计时器中使用async和await

我的Windows应用程序的要求是: 使用HttpWebRequest在一个线程中每3秒获取一次Web请求/响应(总共大约有10个线程用于执行此Web请求/响应。) 每个线程使用一些全局变量。 我想使用System.Timers.Timer和async并等待。 但我不知道这是高性能的最佳方式。 然后如何测试它们。 我是C#的绿色。

C#如何将不仅仅是IAsyncResult传递给AsyncCallback?

如何将IAsyncResult传递给AsyncCallback? 示例代码: //Usage var req = (HttpWebRequest)iAreq; req.BeginGetResponse(new AsyncCallback(iEndGetResponse), req); //Method private void iEndGetResponse(IAsyncResult iA, bool iWantInToo) { /*…*/ } 我想传递示例变量bool iWantInToo 。 我不知道如何将其添加到new AsyncCallback(iEndGetResponse) 。

从HttpResponse中读取特定的div

我正在发送1个httpWebRequest并阅读响应。 我在回复中获得了整页。 我想获得1个div,这是来自响应的名称ad rate。 那么我该如何匹配这种模式呢? 我的代码是这样的: HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(“http://www.domain.com/”); HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); Stream response = WebResp.GetResponseStream(); StreamReader data = new StreamReader(response); string result = data.ReadToEnd(); 我得到的反应如下: Todays rate 55 Rs. 我想读取div率的数据。 即我应该得到内容“今天率55卢比。” 那我怎么能为这个制作正则表达式???

在.NET中有没有办法inheritance没有构造函数的类?

我目前正在尝试修改一些HttpWebRequest函数,但我无法通过inheritance来实现,因为HttpWebRequest没有公共构造函数(除了反序列化构造函数)。 有没有解决方法来做到这一点? 我的目标是编写类似下面示例的代码,但此类对象必须inheritanceHttpWebRequest属性和方法: using System; using System.Net; using System.Threading; public class AsyncWebRequest:WebRequest { private readonly AsyncCallback getResponseCallback; private readonly Uri uri; private volatile int RetriesLeft = 3; private volatile WebRequest request; public AsyncWebRequest(string uri, AsyncCallback getResponseCallback) :this(new Uri(uri), getResponseCallback) { } public AsyncWebRequest(Uri uri, AsyncCallback getResponseCallback):base() { this.uri = uri; this.getResponseCallback = getResponseCallback; } private […]

为ServicePointManager.SecurityProtocol设置每个请求值

在c#中,我可以为SSL3或TLS设置静态值,例如 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; 要么: ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 但是(我相信)这将影响我的应用程序中所有未来的HttpWebRequest对象。 有没有办法为给定的HttpWebRequest或至少为给定的URI设置此值? 注意我已经看到了这个: Uri uri = new Uri(url); ServicePoint sp = ServicePointManager.FindServicePoint(uri); 但ServicePoint没有SecurityProtocol属性。 目前我认为我必须在创建新的HttpWebRequest之前设置静态全局属性。 这感觉不对,这也意味着: 我必须确保多个线程不同时执行此操作。 我不确定这个设置在什么时候被“使用”(即当我调用webRequest.GetResponse()时,是否访问了ServicePointManager.SecurityProtocol并绑定到该URI?)。

针对多个Web请求的最佳multithreading方法

我想创建一个程序来抓取并检查我的网站是否存在http错误和其他内容。 我想用多个线程来做这件事,这些线程应该接受像抓取的url这样的参数。 虽然我希望X线程处于活动状态,但是已经有Y任务等待执行。 现在我想知道执行此操作的最佳策略是什么:ThreadPool,Tasks,Threads甚至是其他什么?

等待HttpWebRequest.BeginGetResponse在Windows Phone 7中完成

我正在尝试在Silverlight for Windows Phone中使用异步HttpWebRequest 。 一切都很完美,直到我到达我应该打电话的地方 private static ManualResetEvent allDone = new ManualResetEvent(false); … request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); allDone.WaitOne(); Debug.WriteLine(“All done!”); 在GetResponseCallback : private void GetResponseCallback(IAsyncResult asynchronousResult) { try { request = (HttpWebRequest)asynchronousResult.AsyncState; response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); allDone.Set(); } catch (Exception e) { Debug.WriteLine(“Got Exception in GetResponseCallback: ” + e.Message); } } 调用allDone.WaitOne(); 它只是挂起…… 有什么建议吗?

如何限制每秒HttpWebRequest对Web服务器的数量?

当使用HttpWebRequest向一个应用程序服务器发出并行请求时,我需要实现一个限制机制(每秒请求数)。 我的C#应用​​程序每秒必须向远程服务器发出不超过80个请求。 远程服务管理员强加的限制不是硬限制,而是我的平台和他们之间的“SLA”。 使用HttpWebRequest时,如何控制每秒的请求数?

如何在c#中正确发送KeepAlive头?

我需要使用HttpWebRequest发送这样的请求: POST https://sap.site.com.mx/sap/bw/BEx?SAP-LANGUAGE=ES&PAGENO=1&CMD=PROCESS_VARIABLES&REQUEST_NO=0&CMD=PROCESS_VARIABLES&SUBCMD=VAR_SUBMIT&VARID= HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive 但是,我无法发送Connection标头。 这是我的代码: // request HttpWebRequest request = CreateWebRequestObject(url); request.CookieContainer = this.cc; request.UserAgent = “Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2”; // headers request.Headers.Add(“Accept-Encoding”, “gzip, deflate”); request.Headers.Add(“Accept-Language”, ” es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3″); request.Accept = “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”; request.KeepAlive = true; […]