2013-03-25 81 views
-4

我想写一个应用程序什么是与网络服务器通信。 我创建了一个服务器,将其设置为代理服务器,我得到这个消息:如何创建发送HTTP-GET/POST的应用程序?

GET http://SOMETHING.SG/ HTTP/1.1 
Host: SOMETHING 
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Cookie: [...SOMETHING...] 
Connection: keep-alive 

1)什么是这些线路在说什么? (例如Gecko)

2)是否可以在没有这些行的情况下创建GET消息?

3)有什么东西在不同时间发生变化,并且不起作用吗?

4)是否可以创建一个C++内置库对我有什么帮助?

5-8)与HTTP-POST

在此先感谢同样的问题。

+2

[HTTP](http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) – 2013-03-25 15:35:02

+1

听起来像你需要阅读[HTTP规范](http://www.w3.org/Protocols/rfc2616/rfc2616。 HTML)。 – Quentin 2013-03-25 15:41:36

+0

对不起,我不小心搜索了,写了HTML-GET而不是HTTP-GET。如果我知道,我会找到答案... – radl 2013-03-30 13:07:16

回答

2

libcurl这样做。它包含允许您以编程方式执行GET/POST请求的HTTP客户端。

+0

有没有教程? – radl 2013-03-25 15:41:23

+1

http://curl.haxx.se/libcurl/c/simple.html – 2013-03-25 15:43:24

+0

你可以提供如何在visual studio 2015中导入libcurl最新的功能吗?如果你的答复不能解决我的问题 – delive 2015-12-08 16:54:24

4

这是针对http://index.hu/的HTTP/1.1 GET请求。要充分了解整个请求,您应该阅读the HTTP/1.1 specification (RFC2616)

但要迅速总结:

  • 主机 - 被请求
  • 资源的主机用户代理 - 描述被用来访问该资源的用户代理字符串。此用户代理建议您使用Firefox。 Firefox的布局引擎被称为Gecko。
  • 接受 - 提供所需资源的首选MIME类型。在这种情况下,请求者希望以HTML的形式接收资源。
  • 接受语言 - 给出请求资源的首选语言。
  • Accept-Encoding - 提供所需资源的首选编码。
  • Cookie - 由RFC2109定义的使用cookie的扩展标头。
  • 连接 - 指定连接的选项。在这种情况下,keep-alive请求持久连接。

并非所有这些标头都是必需的,还有更多的可能需要使用。规范中给出了所有标题的描述。

有许多C++库可以为您构建和发送HTTP请求。受欢迎的是libcurl。还有an official tutorial