【问题标题】:Getting images with HTTP Request in C在 C 中使用 HTTP 请求获取图像
【发布时间】:2011-11-28 01:10:19
【问题描述】:

我正在用 C 语言编写一个程序,它的作用类似于 Linux 系统中的代理服务器:客户端向它请求一个网页, 它向远程服务器发送 HTTP GET 请求,并获取服务器响应(网页),该响应保存在 .html 文件中。

这是我的问题:大多数网站都有一些对图像的引用,所以当我尝试查看创建的 .html 文件代理时,图像不会出现。

我搜索了很多,但一无所获。有没有办法编写一些代码来获取图像?

提前谢谢你

【问题讨论】:

    标签: c http-get http-request


    【解决方案1】:

    您将不得不编写代码来解析您返回的 HTML 文件并查找图像引用(img 标记),然后向服务器查询这些图像文件。这就是网络浏览器在幕后所做的事情。

    您还有一个额外的问题,即 HTML 文件中的图像引用指向原始服务器。我假设由于他们不为您加载返回原始 HTML 的服务器不可用。在这种情况下,在您获得每个图像文件后,您需要在本地文件系统上为其命名,然后更改 HTML 中的引用(以编程方式)以指向新的本地图像名称。

    例如:

    <img src='http://example.com/image1.png'>
    

    会变成

    <img src='localImage1.png'>
    

    如果您要查询任意网站,您还会发现还有各种其他文件需要对 CSS 文件和 JavaScript 文件执行相同操作。一般来说,很难准确地镜像任意网页 - 浏览器具有复杂的对象模型,它们用于解释网页,因为它们必须处理 CSS 和 Javascript 之类的东西,而且您可能需要能够“运行”所有动态代码,甚至确定要从服务器下载哪些文件(例如 JavaScript,包括其他 JavaScript 等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2019-02-13
      • 2021-09-12
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多