用Socket类来实现HTTP协议,
Socket是用TCP的协议。
HTTP
本文用到了4个活动对象。
1.RConnection打开网络通道
2.SocketEngine
3.SocketRead
4.SocketWrite
操作的流程如下:
1.先打开网络通道类。获取一个信息通道,例如:GPRS、WLEN
2.发送一个网址,例如http://www.baidu.com/s?wd=a,并确定是Get方式还是Post方式。
3.在SocketEngine中,根据Get或Post方式来解析域名、路径、参数。
Get:解析域名、路径和参数
Post:解析域名、路径、参数
4.连接DNS。如果是IP地址,就不用执行SetActive了。如果不是IP地址,就需要用RHostResolver来解析域名了。
5.当解析成功后,打开Socket.Open(),然后Socket.Connect()服务器。
6.当连接成功的时候,就发送数据。
7.SocketWrite来发送数据。
8.当发送过数据后,就用SocketRead()来接收数据。
9.当第一次接收到数据后,就把Transfer-Encoding: chunked后面的数据,读取出来,这个数据时16进制的数据,表示本次内容的总字节数。然后转换为10进制的。
10.把读取到的数据都追加到一个字符串中,然后统计字符串的大小。如果获取字符串的总大小大于上边16进制的总大小,就说明数据接收完毕。
11.解析获取的字符串,把网页的状态码、body内容都提取出来。反应到SocketEngine类中。
12.完毕。
注:本文是自己总结的,有的可能看过以后不知道东南西北。如果有需要可以和我联系。
共同进步。