Tag: httpwebrequest

在WP7项目中找不到HttpWebRequest.GetResponse()

我正在尝试使用HttpWebRequest发送GET请求。 我在网上找到了很多例子(例如, 这一个 ……只需要转到Scrape()方法)。 他们基本上都做同样的事情: 使用WebRequest.Create(URL)创建HttpWebRequest对象并将其强制转换为HttpWebRequest ,然后使用HttpWebRequest的GetResponse()方法获取响应。 事实上, GetResponse()似乎不存在于HttpWebRequest或WebRequest (它是它的基类)中。 我唯一的选择是使用BeginGetResponse() 。 我发现的唯一事情是GetResponse()是同步的,而BeginGetResponse()是异步的,而Silverlight只允许异步的。 好吧,这根本没有帮助,因为整个事情是一个XNA项目,这是我在里面创建的一个简单的C#类。 更确切地说,这是一款在XNA 4.0中创建的Windows Phone游戏 HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; StreamReader responseReader = new StreamReader( webRequest.GetResponse().GetResponseStream()); 有没有人知道为什么我没有GetResponse() ?

帮助C#HttpWebRequest URI丢失其编码

HttpWebRequest有问题解码我的编码URL。 var requestUrl = “https://www.google.com/webmasters/tools/feeds/http%3A%2F%2Fwww%2example%2Ecom%2F/crawlissues/”; var request = (HttpWebRequest)WebRequest.Create(requestUrl); 查看结束请求时,URL变为: https://www.google.com/webmasters/tools/feeds/http://www.example.com//crawlissues/ 这当然会返回400 Bad请求。 我猜这是与URI类而不是HttpWebRequest的东西。 我该如何阻止这种情况发生?

HttpWebRequest的并发限制

我正在编写一个应用程序来衡量我使用C#下载网页的速度。 我提供了一个唯一域名列表,然后我生成X个线程并执行HTTPWebRequests,直到消耗了域列表。 问题是无论我使用多少线程,我每秒只能获得大约3页。 我发现System.Net.ServicePointManager.DefaultConnectionLimit是2,但我的印象是这与每个域的连接数有关。 由于列表中的每个域都是唯一的,因此这不应成为问题。 然后我发现GetResponse()方法阻止来自所有其他进程的访问,直到关闭WebResponse: http : //www.codeproject.com/KB/IP/Crawler.aspx#WebRequest ,我还没有找到任何其他信息。 web支持这个声明,但是我使用套接字实现了一个HTTP请求,我注意到了一个显着的加速(4x到6x)。 所以我的问题是:有没有人确切知道HttpWebRequest对象是如何工作的?除了上面提到的内容之外是否有解决方法?或者是否有任何用C#编写的高速网络爬虫的例子?

使用C#HttpWebRequest将json发送到Web服务

我是JSON的新手,需要帮助。 我在jquery中使用了一些JSON,并从我在Web上运行的Web服务中正确地获取信息。 但是,我无法在C#中使用HttpWebRequest来使用它。 我将在下面发布代码。 /// /// Summary description for VBRService /// [WebService(Namespace = “http://test.visitblueridge.com/”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService] public class VBRService : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return “Hello World”; } [WebMethod] [ScriptMethod(ResponseFormat = […]

如何在c#中使用带有代理支持的httppost

如何在c#和多部分表单数据上传方法中使用带有代理支持的http post

如何让System.Web.HttpWebRequest对象使用SSL 2.0?

我不知道我是否掌握了很好地表达这个问题所需的所有信息,所以请耐心等待。 我有一个本地网页(本地意思是192.168。*),它受到自签名SSL证书的保护。 我正在尝试使用System.Net.HttpWebRequest对象访问此页面,但我遇到了一个奇怪的问题。 如果在Internet Explorer中访问此页面并关闭“使用SSL 2.0”选项,浏览器将返回错误,就好像它无法建立连接一样。 (换句话说,浏览器连接错误,而不是服务器发送的错误。)如果打开“使用SSL 2.0”选项,页面工作正常,您会收到标准警告,这是一个自签名证书,你想继续等吗(奇怪的是,Firefox,据说没有打开SSL 2.0,工作得很好。) 现在我的问题是我正在尝试使用HttpWebRequest对象访问此页面,并且它返回的错误是连接意外关闭,就像关闭“使用SSL 2.0”时IE抛出的错误一样。 (我已经有代码来忽略它是一个自签名证书的事实,但它甚至没有达到那么远。) 在发出请求时,如何让System.Net.HttpWebRequest获得“使用SSL 2.0”?

.NET HttpWebRequest速度与浏览器

我有一个关于.Net HttpWebRequest客户端(或WebClient,给出类似结果)的性能的问题。 如果我使用HttpWebRequest请求一个html页面(在本例中为news.bbc.co.uk)并分析应用程序读取响应的速度(使用HttpAnalyzer),这比浏览器慢得多(Firefox,Chrome) ,IE)请求相同的资源(清除所有缓存等)。 .Net应用程序大约需要1.7秒,而浏览器需要0.2 – 0.3秒。 这纯粹取决于代码/应用程序的速度和效率,还是还有其他因素需要考虑? 代码如下: HttpWebRequest request = null; Uri uriTest = new Uri(“http://news.bbc.co.uk”); request = (HttpWebRequest)WebRequest.Create(uriTest); request.Method = “GET”; request.KeepAlive = true; request.Headers[“Accept-Encoding”] = “gzip, deflate”; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Close();

如何让普通的WebRequest异步和等待?

我需要使以下代码异步和等待。 我需要从Web服务器获取大量数据,然后这些数据将用于填充我的应用程序中的xaml页面。 所以,我需要DefLogin()方法是可以接受的。 可能吗? public void DefLogin() { postData = “My Data To Post”; var url = new Uri(“Url To Post to”, UriKind.Absolute); webRequest = WebRequest.Create(url); webRequest.Method = “POST”; webRequest.ContentType = “text/xml”; webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest); } public void GetRequestStreamCallback(IAsyncResult asynchronousResult) { webRequest = (HttpWebRequest)asynchronousResult.AsyncState; Stream postStream = webRequest.EndGetRequestStream(asynchronousResult); byte[] byteArray = Encoding.UTF8.GetBytes(postData); postStream.Write(byteArray, 0, byteArray.Length); […]

如何从Request.Form获取所有元素值,而无需使用.GetValues(“ElementIdName”)确切指定哪个元素值

目前使用以下代码创建一个字符串数组(元素),其中包含来自Request.Form.GetValues(“ElementIdName”)的所有字符串值,问题是为了使其工作,我的View中的所有下拉列表必须具有出于显而易见的原因,我不希望他们使用相同的元素ID名称。 所以我想知道是否有任何方法让我从Request.Form获取所有字符串值而不显式指定元素名称。 理想情况下,我只想获取所有下拉列表值,我在C#中不是太热,但是没有办法让所有元素ID以“List”+“**”开头,所以我可以命名我的列表List1 ,List2,List3等 谢谢.. [HttpPost] public ActionResult OrderProcessor() { string[] elements; elements = Request.Form.GetValues(“List”); int[] pidarray = new int[elements.Length]; //Convert all string values in elements into int and assign to pidarray for (int x = 0; x < elements.Length; x++) { pidarray[x] = Convert.ToInt32(elements[x].ToString()); } //This is the other alternative, painful way which I […]

尽管Set-Cookie Header(无重定向),HttpWebResponse.Cookies为空

我在努力弄清楚这里有什么问题。 我正在发送登录信息,我可以在Header中看到具有正确值的Set-Cookie,但Cookies集合没有被填满。 这是HTTPS,登录自动重定向,但我使用AllowAutoRedirect = false禁用它以尝试解决此问题。 在此屏幕截图中,您可以轻松查看调试信息以及应该设置cookie。 我将我的httpWebRequest.Cookie设置为新的CookieCollection。 HttpWebRequest httpRequest; CookieContainer reqCookies = new CookieContainer(); string url = “https://example.com”; string[] email = user.Split(‘@’); email[0] = System.Web.HttpUtility.UrlEncode(email[0]); user = email[0] + “@” + email[1]; pass = System.Web.HttpUtility.UrlEncode(pass); string postData = “email=” + user + “&password=” + pass; byte[] byteData = Encoding.UTF8.GetBytes(postData); httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = “POST”; […]