第7节 HTTP客户端API
推荐给好友
打印
加入收藏
更新于2009-01-11 23:53:39

7.1 emg_HTTP_client_connect函数

        HTTP_client_connect 函数的功能是向远程服务器建立一个 TCP/IP 连接。URL字符串包含一个如75.18.69.29的IP地址或一个域名。IP地址或域名后可通过“/”接一个文件名。对URL的长度没有硬性规定,但是带URL的GET头部必须在一个分组内(1536字节)。
        几个URL例子:
  • ● www.freescale.com
  • ● 75.18.69.29
  • ● www.emgware.com/appnotes.htm
  • ● 75.18.69.29/appnotes.htm
7.2 emg_HTTP_client_close函数

7.3 emg_HTTP_client_get函数
        HTTP_client_get函数向远程服务器发送带有HTTP首部的GET请求。服务器返回的数据通过callback函数发送给连接调用里指向的用户程序。因为每次只发送一个分组给callback函数,所以一个典型的网页实际上很多的数据回调。
        扩展字符串是用于传递 URL 中的查询字符串或其他类型的动态改变的数据。这样就可以指定一个常量 url,并将需要改变的动态部分放在最后(例如,通过搜索引擎查询参数)。
        keep-alive 标志在普通操作中为 0,HTTP 客户端发送的首部 是不包含keep-alive 请求的。这样服务器和客户端在传输完一个文件后就可以关闭连接。如果keep-alive标志被置1,客户端就会向服务器发送keep-alive请求,并且文件传输结束后不会关闭连接。这样就可以下载下一个文件而不用再调用连接函数了。

7.4 emg_content_length_filter


        content_length_filter函数是一个状态机,将内容长度从HTTP首部过滤出来。当用户程序收到服务器发来的分组时,该函数就会被调用来对分组中的每个字节进行过滤(直到返回2或3)。如果在HTTP首部找到了content-length:域,那么变量length就知道了。如果所有的数据都收到了,那length也可以确定了。如果函数返回0,则不需要做任何操作,变量length不能被破坏。
        为了过滤出首部,将分组中的字节数据发送给该过滤器,如果用户程序忽略了这些字节数据,再继续一个一个字节地发送过去,直到该过滤器返回的是2或3。假定有一个有效的(正确终止)HTTP 首部,总是会有一个2或3返回的。直到过滤器找到最后还没找到,才返回 0(或者变量 length 后的那个字节 is populated)。
        index 是过滤器的一个状态变量。除了在第一次调用时将其初始化为 0,应用程序不可以修改index。变量length在第一次调用时也必须将其清0。


<<上一页    下一页>>
相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.