我无法将数据发送到网站并在Python中获得响应。 我曾经见过类似的问题,但是他们没有一个能够实现我的目标。 如果你可以阅读这个,你可以看到我正在尝试在Python(这是它在C#中) static void Request(Uri selectedUri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(selectedUri); request.ServicePoint.BindIPEndPointDelegate = BindIPEndPointCallback; request.Method = "GET"; request.Timeout = (int)Timeout.TotalMilliseconds; request.ReadWriteTimeout = (int)Timeout.TotalMilliseconds; request.CachePolicy = CachePolicy; request.UserAgent = UserAgent; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader responseReader = new StreamReader(response.GetResponseStream())) { string responseText = responseReader.ReadToEnd(); File.WriteAllText(UrlFileName, responseText.Trim(), Encoding.ASCII); } } } 在上面的代码中,build立了一个Http请求,将响应stream中发现的所有内容都发送给在UrlFileName中find的url。 这里是我尝试在Python中重新创build它: […]
我正在寻找最好的方法来testing一个网站是否从C#应用程序是活着的。 背景 我的应用程序包含一个WinForms UI ,一个后端WCF服务和一个向UI和其他用户发布内容的网站 。 为了防止由于缺lessWCF服务或网站closures而导致UI启动失败并且无法正常工作的情况,我添加了应用程序启动检查,以确保所有内容都处于活动状态。 该应用程序正在编写C#,.NET 3.5,Visual Studio 2008 SP1 当前解决scheme 目前,我正在向网站上的testing页发出networking请求,这将对网站进行testing,然后显示结果。 WebRequest request = WebRequest.Create("http://localhost/myContentSite/test.aspx"); WebResponse response = request.GetResponse(); 我假设,如果在这个调用过程中没有例外,那么一切都很好,UI可以开始。 题 这是最简单/正确的方式,还是有一些其他的鬼鬼祟祟的电话,我不知道在C#或更好的方式来做到这一点。
为什么下面的代码超时运行的第二个(和后续)时间? 代码挂在: using (Stream objStream = request.GetResponse().GetResponseStream()) 然后导致WebException说该请求已超时。 我已经试过这与WebRequest和HttpWebRequest 编辑:看起来代码是在request.GetResponse() 编辑:这个职位表明它可能是一个GC问题 – > http://www.vbforums.com/showthread.php?t=610043 – 根据这个职位,如果提琴手是在后台打开缓解的问题。 服务器在那里,可用于请求。 private string GetQLMResponse(string URL) { HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest; request.Credentials = new NetworkCredential(Settings.Default.LicenseUser, Settings.Default.LicensePassword); request.KeepAlive = false; request.Timeout = 5000; request.Proxy = null; // Read stream string responseString = String.Empty; try { using (var response = […]
我终于开始创build一些与REST风格的Web界面一起工作的应用程序了,但是,我担心的是,每当我点击F5来运行一系列testing时,我都会敲击他们的服务器。 基本上,我需要得到一系列的networking响应,所以我可以testing我正确parsing不同的响应,而不是每次都打他们的服务器,我想我可以做一次,保存XML,然后在本地工作。 然而,我不明白我怎么可以“嘲笑”一个WebResponse,因为(AFAIK)他们只能通过WebRequest.GetResponse 你们怎么去嘲笑这种事情呢? 你做? 我真的不喜欢我锤击他们的服务器的事实:我不想更改代码太多 ,但我希望有一个这样做的优雅方式.. 更新以下接受 威尔的回答是我需要的巴掌,我知道我错过了一个基本点! 创build一个接口,它将返回一个表示XML的代理对象。 实现接口两次,一个使用WebRequest,另一个返回静态“响应”。 接口implmentation然后根据响应实例化返回types,或者静态XML。 然后,您可以在testing或生产时将所需的类传递给服务层。 一旦我的代码被打倒,我会贴一些样本。
我正在集成将使用HTTP-POST请求和检索数据的Web服务。 远程服务器需要根据RFC 2617进行基本身份validation 我尝试authentication失败。 即使我将“NetworkCredential”对象附加到“HttpWebRequest”对象的“Credentials”属性上,即使设置了“PreAuthenticate”= true,也不会在标头中发送authentication信息。 我错过了什么? //使用大块 NetworkCredential netCredential = new NetworkCredential(" uid", "pwd"); Uri uri = new Uri("http://address of services"); ICredentials credentials = netCredential.GetCredential(uri, "Basic"); objRegistration.Credentials = credentials; objRegistration.PreAuthenticate = true;
我刚刚在我的.NET 2.0应用程序(在Windows Mobile 6标准模拟器上运行)得到这个exception(ProtocolViolationException)。 令我困扰的是,据我所知,我没有添加任何内容主体,除非我不知不觉地做了它。 我的代码是(非常简单)。 还有什么我需要做的说服.NET这只是一个HTTP GET? 谢谢,布莱恩 //run get and grab response WebRequest request = WebRequest.Create(get.AbsoluteUri + args); request.Method = "GET"; Stream stream = request.GetRequestStream(); // <= explodes here XmlTextReader reader = new XmlTextReader(stream);
我试图通过一个身份validation请求,模拟了“基本身份validation请求”,我们习惯看到为此行为设置IIS时看到。 url是: https : //telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC = 22&SC = 1&ST = 2 (警告:https!) 该服务器在UNIX和Java下作为应用程序服务器运行。 这是我用来连接到这个服务器的代码: CookieContainer myContainer = new CookieContainer(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2"); request.Credentials = new NetworkCredential(xxx,xxx); request.CookieContainer = myContainer; request.PreAuthenticate = true; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); (我从这个网站上的另一篇文章中复制了这个)。 但是我从服务器收到这个答案: 底层连接已closures:发送时发生意外错误。 我想我尝试了一切可能的任务,我在C#上的知识必须提供给我,但是没有…
现在SSL 3被发现容易受到POODLE攻击: 当连接到任何https Uri时,System.Net.WebRequest使用哪个版本的SSL / TLS? 我使用WebRequest连接到多个第三方API。 其中之一已经表示,他们将阻止任何使用SSL 3的请求。但是WebRequest是.Net核心框架(使用4.5)的一部分,所以它使用什么版本并不明显。
我需要从外部域获取json数据。 我使用webrequest从网站获得响应。 代码如下: var request = WebRequest.Create(url); string text; var response = (HttpWebResponse) request.GetResponse(); using (var sr = new StreamReader(response.GetResponseStream())) { text = sr.ReadToEnd(); } 任何人都知道为什么我不能得到JSON数据?
我有一些麻烦,从一个从一个Web请求获得的PNG和GIF字节的MemoryStream创build一个BitmapImage 。 似乎下载的字节好, BitmapImage对象创build没有问题,但图像实际上不是在我的用户界面上呈现。 只有当下载的图像types为PNG或GIF(适用于jpeg)时才会出现此问题。 这里是演示问题的代码: var webResponse = webRequest.GetResponse(); var stream = webResponse.GetResponseStream(); if (stream.CanRead) { Byte[] buffer = new Byte[webResponse.ContentLength]; stream.Read(buffer, 0, buffer.Length); var byteStream = new System.IO.MemoryStream(buffer); BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.DecodePixelWidth = 30; bi.StreamSource = byteStream; bi.EndInit(); byteStream.Close(); stream.Close(); return bi; } 为了testingWeb请求是否正确获取字节,我尝试了以下方法,将字节保存到磁盘上的文件中,然后使用UriSource而不是StreamSource加载图像,并且适用于所有图像types: var webResponse = webRequest.GetResponse(); var stream […]