开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 10915|回复: 41
收起左侧

让模块 去 死 !:不需要任何支持库和模块3行代码搞定GET访问.

[复制链接]
结帖率:100% (1/1)
发表于 2016-12-20 19:07:32 | 显示全部楼层 |阅读模式   北京市北京市
最近实在是太忙了.忙到这篇教程都是抽出时间来写的.这是我又挖的一个坑.这个系列叫做模块 去 死.教程的内容就是经常需要用到的模块中的某些命令实现.以此来抛 弃 该 死 的模块.让模块这种东西跟着MFCVC++6.0一起去陪 希 特 勒 和 秦 始 皇
这个系列教程.除了易语言核心支持库以外.尽量不依赖任何任何的支持库.包括官方提供的.能避免的尽量避免.第三方支持库可以的话.全部抛弃,尽量用纯win32API和易语言标准库来实现各种操作
这个教程是这个坑的第一期.我还有一个坑是windows开发入门到死亡的.还没填太忙,最近在跟PG64下面的SSDT刚正面
废话不多说,我直接上代码了
  
.版本 2[/align].支持库 Krnlnex
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
a文本型 
客户1.连接 (“www.ockdieso.com”, 80)
客户1.发送数据 (到字节集 (“GET /index.jsp HTTP/1.1”#换行符“Connection:close”#换行符“Host:www.ockdieso.com”#换行符#换行符 ))
子程序名返回值类型公开备 注
_客户1_数据到达  
变量名类 型静态数组备 注
a字节集 
a = 客户1.取回数据 ()
调试输出 (到文本 (a))
,你没看错,就这3行代码.搞定了http读文件的工作.只需要这3行代码.以后GET访问根本不需要什么模块和支持库.自己就能搞定
现在来一行一行的分析代码
(我从来没给零基础写过教程.看不懂的,回去看书补知识)
第一行: 客户1.连接(www.ockdieso.com,80)
这个不需要说.会用标准库的客户端服务端都了解这个.第一个参数域名或者IP.第二个参数端口
注意,虽然大部分服务器都默认HTTP端口为80,但不是全部.例如tomcat.默认端口为8080
客户1.发送数据(到字节集 (GET /index.jsp HTTP/1.1#换行符Connection:close#换行符Host:www.ockdieso.com#换行符 #换行符))
这行就需要讲一讲了
首先我们做的事情可以概括为send发送数据
但是这发送的数据内容就有些意思了
要知道.HTTP协议是基于TCP/IP协议的
而易语言标准库帮我们封装了很多TCP/IP的东西.这样一来,我们只需要在这层封装上.自己实现以下HTTP协议即可
首先,到字节集.这个就不用说了.貌似不是必须.
第一个HTTP协议头GET/index.jsp HTTP/1.1表示GET访问,/index.jsp表示访问的URI
(注意.URLURI并不是一个东西.具体可以百度)
最后,HTTP协议版本1.1,这些东西基本固定就可以了
然后Connection:close.这里还是有点学问的.如果你选着的是保持连接.那么会出一些小小的毛病,而且有时候,他必须使用保持连接.有兴趣的可以自己去实验一下
Host:www.ockdieso.com这个就不多说了.指明地址
重点还有一个地方.也就是换行符
每一个HTTP协议头,都会用换行符来分割开.C/C++表示为\r\n.HTTP协议头结束的标志.\r\n\r\n,也就是2个换行符.这点是必须的.不信你可以去掉换行符试试.服务器会认不出来你发送的消息的
那么最后. a 客户1.取回数据() 取回数据.最后调试输出.就搞定了

OK.以后如果你需要用到网页访问的时候.你大可 抛 弃 模 块 让他们 去 死.自己手动实现这个功能了
当然.很多HTTP头的字段还是需要自行掌握的.比如POSTGET提交的东西就不一样,这个需要你们研究研究HTTP协议.
不过,至少如果你只是想读一个HTTP.或者HTTP源文件.那么你现在可以让模块 去 死 了.
这一期教程只做一个开头而已.下一期.我可能会带你们用winhttp作成一个属于自己的网页访问
不过当然也可能是教你如何不用支持库.自行实现mysql增删查改等等.也可能下一期更新win开发入门到死亡去了
最后.你需要知道的是,模块这种东西.并不是不能用,而是不能依赖
PS:最后放个公告...CGDLL的读文件有严重问题,暂时别用了.下次更新修BUG.外加64位驱动级隐藏进程防杀进程(64下隐藏进程).目前跟PG打的热火朝天,胜利就在眼前

QQ截图20161220185440.png
QQ截图20161220185456.png

点评

客户组建是核心支持库?如果这是一个好方案 微软开发winhttp.dl干嘛?   江苏省南京市  发表于 2016-12-29 17:08
HTTP协yi是基于TCP协yi的   广东省广州市  发表于 2016-12-21 00:09

评分

参与人数 4好评 +3 精币 +5 收起 理由
爱生活爱大乔 + 1 + 1 新技能已get√
379061296 + 1 + 1 新技能已get√
web11234 + 1 + 1 大神,请收下我的膝盖
leiyh + 2 来回血

查看全部评分


结帖率:63% (27/43)
发表于 2016-12-20 20:01:49 | 显示全部楼层   重庆市重庆市
实际上没多大用,谁也不会放着模块不用用这个  htpp开源的命令也很多,这个B装的勉勉强强

点评

htpp是什么   山东省威海市  发表于 2016-12-20 22:03
回复 支持 反对

使用道具 举报

结帖率:63% (27/43)
发表于 2016-12-20 20:02:14 | 显示全部楼层   重庆市重庆市
本帖最后由 a1678131758 于 2016-12-20 20:03 编辑

[fly][fly]抱歉   卡住了[/fly][/fly]
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:100% (16/16)
发表于 2016-12-20 20:40:38 | 显示全部楼层   重庆市重庆市
你访问的这个网页太小了
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)
发表于 2016-12-20 20:55:13 | 显示全部楼层   浙江省杭州市
点个赞先,再提提建议:愿意了解这个的对HTTP和TCP/IP估计都有所涉猎,对希望从这篇文章中学习到什么的我们来说,可能写得太过宽泛了,窃以为作为教程,应当更多地围绕“为什么”,而不是“怎么做”。而且从楼主以往的贴子来说,正符合这种追根究底的风格。
回复 支持 反对

使用道具 举报

结帖率:83% (39/47)

签到天数: 24 天

发表于 2016-12-20 20:56:15 | 显示全部楼层   福建省宁德市
然而性能是个大问题
回复 支持 反对

使用道具 举报

结帖率:100% (34/34)

签到天数: 21 天

发表于 2016-12-20 21:25:28 | 显示全部楼层   上海市上海市
你那个客户1.不是支持库?

点评

易语言核心支持库而已.如果核心支持库都不用的话?那么易语言存在的意义在哪里呢   北京市北京市  发表于 2016-12-20 22:33
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2016-12-20 21:37:57 | 显示全部楼层   河南省郑州市
勉强勉强勉强勉强
回复 支持 反对

使用道具 举报

签到天数: 8 天

发表于 2016-12-20 22:15:44 | 显示全部楼层   四川省成都市
客户Duan组件也是支持库的.........不是快速发包抢购,不需要用TCP客户Duan类的组件方式先启动链接后发送,那样代码量真心有点作死了.
回复 支持 反对

使用道具 举报

结帖率:75% (50/67)

签到天数: 9 天

发表于 2016-12-20 22:27:38 | 显示全部楼层   四川省成都市
强烈支持楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表