【问题标题】:C char* with contents of URL带有 URL 内容的 C char*
【发布时间】:2012-06-21 17:21:09
【问题描述】:

我正在这里做一些功课,但我已经完全没有想法了。我需要用 C 语言制作一个简单的网络浏览器,其中必须包括简单的 HTML 阅读。这通常很容易,但挑战在于:挑战自己,我想使用尽可能少的库。如果我绝对必须,我可以使用任何库。

我需要用 C 中的 URL 的内容填充一个 char*,但我不知道该怎么做。对此有何想法?

请注意,这不是类似问题的重复,因为我问的是 C,而不是库。

【问题讨论】:

  • 家庭作业的网络浏览器......你是认真的吗?这对一个人来说是一项艰巨的任务。要回答您的问题,请指点一下,使用malloc,使用strcpy。但如果你连这一步都做不到,那你现在肯定是遥不可及了。
  • 网络浏览器还是网络爬虫?获取 HTML 或将其作为页面显示
  • 全是文字。它应该具有简单的阅读能力,例如h1p 标签。它所要做的就是用不同的字体显示文本(我可以这样做)。我也可以尝试让链接工作以获得额外的功劳。
  • 使用libcurl,不要让事情过于复杂。
  • 你到底想做什么?网址从哪里来?你打算用它做什么? @Ryan 并不过分复杂。如果他知道引擎盖下的内容,那么他​​在使用库时会有优势

标签: c stream char


【解决方案1】:

您需要编写一个基本的 HTTP 客户端。以下基本操作是必要的:

  1. 解析 URL 并提取服务器部分和路径部分。
  2. 使用套接字连接到服务器。套接字是您读取和写入的通道。
  3. 使用路径编写 HTTP GET 请求。
  4. 读取由一些标头和正文组成的 HTTP 响应。
  5. 将标头解析为有意义的数据,例如状态、正文长度、mime 类型和编码。
  6. 如有必要,解码“分块”编码。

您现在应该可以开始使用 Google 搜索了。

【讨论】:

  • 我可能只是在这里误解了你,但这看起来不像并回答我的问题。除了 HTML 加载之外,我什么都完成了;我可以传递我想要的任何 HTML 并显示它,但我无法从网络加载。从字面上看,我也只需几分钟。我是不是误会了?
  • 恐怕是的,你误会了。这 6 点是 Web URL 内容加载的非常基本和简化的版本。如果您想欣赏功能齐全的版本,请查看 libcurl 或 wget 之类的库。
  • 好的。我现在明白了,我认为这是我在任何地方找到的最佳答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 2019-08-04
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多