如何用W7100A实现HTTP客户端(二)

大家好,上一篇博文为大家分享了WIZnet的用户手册如何用W7100A实现HTTP客户端(一),这篇继续为大家分享第二部分。

如何用W7100A实现HTTP客户端(一)请参考:http://blog.iwiznet.cn/?p=1046

 

2.3  演示

  2.3.1 设置超级终端机(Hyper terminal)

如下所示设置超级终端机(Hyper Terminal),向W7100A输入URL并且显示调试结果。

 超级终端机(Hyper Terminal)的设置 

   2.3.2 输入URL

示范. 1

   2.3.3 DNS, HTTPc和输出Doc

    

示范. 2

   2.3.4 串口输出结果

    

(a)解析的数据

(b)网页

示范. 3

  3. HTTP 客户端的实现

本示例中的HTTP客户端在TCP客户端模式下执行。TCP客户端模式通过连接到服务器工作,并且在建立连接之后可以发送/接收数据。更多的详细信息,请参考网络嵌入式MCU W7100A用户手册的9.2.1节或者文档‘如何使用W7100A实现TCP通信’。图4为HTTP客户端的程序流程图。

图4 HTTPc流程图

下面的代码显示了HTTPc下的main.c函数。HTTPc将URL解析为URL域和URL路径。当DNS获得服务器IP时,HTTPc就会调用。上图中虚线所示部分为HTTPc连接到服务器的流程。在连接建立之后,请求信息会被发送。服务器接收到请求信息之后将响应请求并且发送数据。

(注意)

在这个应用中,使用了一个简单的算法来解析接收到的数据。为了能够有区别地解析接收到的数据,用户可以修改解析部分程序代码。

main.c

 

/* Scanf URL */

 

95: /* Do DNS Client */

96: memset(HTTPs_IP,0,sizeof(HTTPs_IP));

97:    done_dns = dns_query(s, url_dn, HTTPs_IP);

99:    while( done_dns == 1 ){ // on success, done_dns is ‘1’

100:  /* ouput for LCD : DSN SERVER IP */

101:  evb_set_lcd_text(0,”DNS SERVER IP  “);

102:  sprintf(str,”%.3bu.%.3bu.%.3bu.%.3bu”,

103:  HTTPs_IP[0], HTTPs_IP[1], HTTPs_IP[2], HTTPs_IP[3]);

104:  evb_set_lcd_text(1,str);

106:  /* Do HTTP Client */

107:  done_http = http_client(s, HTTPs_IP, url_path, data_buf);

108:  if(done_http) { // on success, done_dns is not  ‘0’

/* parsed Part */

/* print parsed data */

}

main.c代码

更多有关W7100的博文请看这里:

W7100例程学习之ADC应用http://blog.iwiznet.cn/?p=691

用W7100,做自己的HTTP服务器 http://blog.iwiznet.cn/?p=684

W7100学习笔记 -W7100部分固件(firmware)解析http://blog.iwiznet.cn/?p=677

什么是API函数以及如何使用W7100A进行初始化(TCPIPCore)?(二)http://blog.iwiznet.cn/?p=628

 

更多有关W7100A的博文请看这里:

如何使用W7100A实现网络字符LCD  http://blog.iwiznet.cn/?p=168

单片机以太网控制芯片— iMCU W7100A http://blog.iwiznet.cn/?p=229

如何使用W7100A模拟I2C总线 http://blog.iwiznet.cn/?p=304

如何实现W7100A程序烧录 http://blog.iwiznet.cn/?p=161