【问题标题】:PictureBox and HttpWebRequest图片框和 HttpWebRequest
【发布时间】:2013-08-23 22:02:02
【问题描述】:

我想使用 PictureBox 显示用户验证码图像。我知道如何从 URL 设置典型图像。但我需要添加需要 cookie 的验证码。我就是这么说的:https://konto.interia.pl/poczta/nowe-konto.

我不知道如何保存来自该服务器的 cookie,稍后我可以使用它来显示验证码,然后发送特殊响应以创建帐户。你有什么想法我该怎么做?

【问题讨论】:

  • 使用CookieContainer
  • 我知道我应该使用它,但我不知道如何将 CookieContainer 与那个特殊的验证码图像连接起来。我的问题是因为PictureBox 需要 String 作为参数,而不是使用 CookieContainer 的 HttpWebRequest。

标签: c# image cookies httpwebrequest captcha


【解决方案1】:

使用HTTPWEBREQUEST 下载图像并保存 Cookie 以随心所欲地使用它们。然后只需将该图片加载到图片框中,就这么简单。如果这就是您想要的,用户会回答 Get 并使用 CookiesCaptchaID 发送答案。应该这样做。

【讨论】:

  • 我同意这一点。问题是其他的。此验证码没有静态 ID,而且当在 Web 浏览器中我们没有存储 cookie 时,图像不会出现。看那个链接:captcha link
  • 所以到主页保存cookies,然后使用cookies下载图片有什么问题?
【解决方案2】:

需要自己下载图片,放到PictureBox中;您不能将其内置下载器与 cookie 一起使用。

使用HttpWebRequst将其下载到MemoryStream,然后调用Image.FromStream()

【讨论】:

  • 好的,谢谢。但是当我想在该代码中得到响应时:HttpWebRequest requestPic = (HttpWebRequest)WebRequest.Create(url); requestPic.CookieContainer = cookies; WebResponse responsePic = requestPic.GetResponse(); webImage = Image.FromStream(responsePic.GetResponseStream()); 我得到了一些例外。
  • 异常:抛出:“远程服务器返回错误:(403)禁止。” (System.Net.WebException) 抛出 System.Net.WebException:“远程服务器返回错误:(403) Forbidden。”
  • @matikycz:那是你的服务器的问题(你可能弄乱了 cookie,或者需要一个用户代理)。与 Fiddler 中的工作会话进行比较。
猜你喜欢
  • 2013-08-18
  • 2011-07-18
  • 2012-05-20
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2012-10-28
相关资源
最近更新 更多