我知道我们可以通过curl http://curl.haxx.se/来检索网页内容,但是有没有使用C++检索网页内容而不使用任何库的本地方法?有没有什么办法可以使用C++来读取网页
回答
为了建立网络连接(我将OS API作为库计数),您总是需要某种类型的库。这且不说,你还必须是:
- 建立与服务器的连接
- 发送一个HTTP请求
- 接收和处理HTTP响应
您可以手动执行这些步骤,但这真的很痛苦,尤其是因为http is quite a complex protocol(即使你只实现了你实际使用的东西,剩下的东西也足够了)。
+1:明智的答案。 @sarvan:即使你自己实现HTTP,你很可能忘记了实现一些重要的东西(我想到的是“HTTP重定向”)。帮你一个忙,使用现有的和已知工作的库,如卷曲。 – ereOn 2011-03-21 10:55:57
如果你使用Windows,你可以使用下面的功能
InternetOpen() - 初始化应用程序使用的WinInet函数。 http://msdn.microsoft.com/en-us/library/aa385096(VS.85).aspx
InternetOpenUrl() - 打开由完整的FTP,Gopher或HTTP URL指定的资源。 http://msdn.microsoft.com/en-us/library/aa385098(VS.85).aspx
的InternetReadFile() - 从由InternetOpenUrl中 http://msdn.microsoft.com/en-us/library/aa385103(VS.85).aspx
InternetCloseHandle()打开的句柄读取数据 - 关闭一个Internet处理 http://msdn.microsoft.com/en-us/library/aa384350(VS.85).aspx
希望它可以帮助
PS:或你可以使用更方便的功能
URLDownloadTo文件() - 从Internet上下载位并将它们保存到文件中。 http://msdn.microsoft.com/en-us/library/ms775123(v=vs.85).aspx
- 1. 有没有什么办法可以使用fscanf来读取下面的空格?
- 2. 有没有什么办法可以在我的网页中使用Visio 2013
- 3. 有没有什么办法可以在ScrollView之外使用SliverGrid?
- 4. 有没有什么办法可以在函数中使用get_sidebar?
- 5. 有没有什么办法可以从八度使用.net .dlls?
- 6. 有没有什么办法可以使用li:first-child和li:hover
- 7. 有没有什么办法可以使用PDO获取上次提取的ID
- 8. 有没有什么办法可以让我的C#XMLManager工作?
- 9. 有没有什么办法可以放大c#中的按钮?
- 10. 有没有什么办法可以使用WebBrowser Class(Band Objects)来编写DOM?
- 11. 有没有什么办法可以在codeigniter的同一页上获取数据
- 12. C#有没有办法可以&& =?
- 13. 有没有什么办法可以找到新增的设备使用asp.net C#
- 14. 有没有什么办法可以使用HttpUrlConncetion正确获取上传进度
- 15. 有没有办法通过登录信息读取C#网站
- 16. 有没有什么办法可以用git log来显示远程引用?
- 17. 有没有什么办法用C#读取PDF中表格的特定列
- 18. 有没有什么办法可以查看应用程序
- 19. 有没有什么办法可以用php的
- 20. 有没有什么办法可以用Tag Helper创建循环?
- 21. 有没有什么办法可以用Sourcesafe创建配置项
- 22. 有没有什么方法可以使用AS3读取pdf? (空气)
- 23. 有没有什么办法可以用大写字母来创建JSON对象?
- 24. 有没有什么办法可以用Jasmine或Sinon来模拟这个功能?
- 25. 在java中有没有什么办法来使用和代替&&
- 26. 有没有什么办法来检查类的属性在C#
- 27. 有没有什么办法可以在以后使用Twilio发送短信
- 28. 有没有什么办法可以从C++中的用户数组大小?
- 29. 有没有什么办法可以在非Activity类中使用openFileOutput()方法?
- 30. 有没有办法使用用户的互联网历史来呈现网页?
确实有,但为什么重新发明轮子? – Unicron 2011-03-21 10:22:48
是的,你只需要实现卷曲! – 2011-03-21 10:25:39