| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7999 人关注过本帖, 1 人收藏
标题:王子的fll可以让vfp实现web化想学习的来学习吧
只看楼主 加入收藏
aqyejun
Rank: 4
等 级:贵宾
威 望:10
帖 子:147
专家分:113
注 册:2010-6-11
收藏
得分:0 
可以交流交流

【独叶为舟】工作室
2022-07-12 14:12
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
362924376加我qq
2022-07-12 18:41
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
LPARAMETERS m_IP, m_Port

SET TALK OFF
SET DATE ANSI
SET HOURS TO 24
SET CENTURY ON
LOCAL Call_Count
Call_Count = 0
SET LIBRARY TO VFPHttpServer.fll
&&连接到主进程
IF !HTTP_Connect(m_IP, VAL(m_Port))
    RETURN
ENDIF

LOCAL Ev as Boolean
LOCAL SessionSetted as Boolean     &&是否已设置了SESSION
SessionSetted = .F.
&&设置发送缓冲区大小
Http_SetChunkSize(1024)

Do While Http_IsConnected()
    m.Ev = HTTP_GetEvent(5000)    &&获得事件,有请求到达返回真,参数:整形,超时时间
    IF (m.Ev)
*!*    *!*        *以下演示COOKIE操作
            m.CookieValue    = Http_GetCookie("TNND")                    &&获得指定名称的COOKIE的值
            IF EMPTY(m.CookieValue)
                Http_SetCookie("TNND", "NTNND")                                &&设置COOKIE必须在第一次Write之前进行
            ENDIF
            
            HTTP_Write("Hello World! " + TTOC(DATETIME()) + " 第" + TRANSFORM(Call_Count) + "次复用" +CHR(13) + CHR(13))
            Call_Count = Call_Count + 1
*!*                *演示获得URL各部分内容,分别有以下几部分:
                *!*    HUF_PATH        = 3,
                *!*    HUF_QUERY        = 4,
            m.UrlPath = Http_GetUrlField(3)
            Http_Write("URL访问路径为:" + m.UrlPath + CHR(13) + CHR(13))
*!*               
*!*                *以下演示头域值获取,Http_GetHeader()也可以直接传入头域字段名
            m.oHeader = CREATEOBJECT("Empty")
            Http_Write( "头域Host的值为:" + Http_GetHeader("Host") + CHR(13))    &&传入头域名,返回头域的值,没找到则返回空字符
            m.HeaderItemSize = Http_GetHeader(-1)        &&传入负值,返回头域总数
            Http_Write("头域总数:" + TRANSFORM(m.HeaderItemSize) + CHR(13))
            FOR i=0 to m.HeaderItemSize - 1
                Http_GetHeader(i, m.oHeader)            &&传入不大于总数的正值(从0开始)和一个接收结果的对象,对象自动添加key和value属性
                Http_Write( 0h09 + m.oHeader.key + ":" + m.oHeader.value + CHR(13) )    &&对象中已设置好key和value属性
            ENDFOR
*!*    *!*               
*!*    *!*               
*!*                *以下演示查询参数的获取,Http_GetQueryField()函数里也可以直接传入参数名,没找到返回空字符串
            m.QueryFieldsCount = Http_GetQueryField(-1)    &&传入负数,获得查询参数的个数
            m.oQueryField = CREATEOBJECT("Empty")        &&创建一个“空”对象,用来接收键值对
            Http_Write( CHR(13) + "查询参数[" + TRANSFORM(m.QueryFieldsCount) + "]:" + CHR(13))
            FOR i=0 to m.QueryFieldsCount - 1
                Http_GetQueryField(i, m.oQueryField)    &&遍历查询参数,起始序号为0
                Http_Write( 0h09 + m.oQueryField.key + ":" + m.oQueryField.value + CHR(13))
            ENDFOR
*!*    *!*               
*!*    *!*                *以下演示POST数据的获取,Http_GetPostField()函数里也可以直接传入参数名,没找到返回空字符串
            m.FormFieldsCount = Http_GetFormField(-1)    &&传入负数,获得POST数据的个数
            m.oFormField = CREATEOBJECT("Empty")        &&创建一个“空”对象,用来接收键值对
            Http_Write( CHR(13) + "POST数据[" + TRANSFORM(m.FormFieldsCount) + "]:" + CHR(13))
            FOR i=0 to m.FormFieldsCount - 1
                Http_GetFormField(i, m.oFormField)        &&遍历POST数据,起始序号为0
                Http_Write( 0h09 + STRCONV(m.oFormField.key, 11) + ":" + STRCONV(m.oFormField.value, 11) + CHR(13))
            ENDFOR
            m.RawPostData = Http_GetPostRawData()
            Http_Write( CHR(9) + "原始数据:" + m.RawPostData + CHR(13))
*!*    *!*               
*!*    *!*                *以下演示SESSION操作
            IF !m.SessionSetted
                Http_SetSession("TMD", "TMD:" + TRANSFORM(DATETIME()), 900)    &&设置SESSION,最后一个参数为超时时间,可省略,默认900秒
                m.SessionSetted = .T.
            ENDIF
            m.SessionString = Http_GetSession("TMD")                    &&获得SESSION
*!*                Http_DelSession("TMD")                                    &&删除SESSION
            Http_Write( CHR(13) + "SESSION TMD = " + m.SessionString + CHR(13) + CHR(13))
*!*               
            
            Http_Write( "COOKIE:" + CHR(13) + CHR(9) + "TNND:" + m.CookieValue + CHR(13))

*!*    *!*            
            Http_Write("上传文件:" + 0h0D)   
            m.oFileInfo     = CREATEOBJECT("Empty")
            m.FileCount    = Http_GetFileInfo(-1)        &&传入负数,返回文件个数
            FOR i=0 to m.FileCount - 1
                IF Http_GetFileInfo(i, m.oFileInfo) = 0        &&正确获得数据返回 0
                    Http_Write( 0h09 + "上传文件名:" + m.oFileInfo.FileName + 0h09 + "文件大小:" + TRANSFORM(m.oFileInfo.FileSize) + " Bytes" + 0h09 + "表单名:" + m.oFileInfo.FieldName + 0h0d)
                ENDIF
            ENDFOR

            Http_End()        &&调用以后再写入均被忽略
        ELSE    &&空闲,可以干干其它事,相当于一个定时器,间隔时间由GetEvent的参数指定
        
        ENDIF
ENDDO
2022-07-19 22:04
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:806
专家分:1231
注 册:2021-10-13
收藏
得分:0 
感觉有点复杂,代码量挺大的。楼主是不是也是收费的呀?不然可以交流一下。
2022-07-19 22:19
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏(1)
得分:0 
免费的
fll项目.rar (1.52 MB)


[此贴子已经被作者于2022-7-24 13:40编辑过]

2022-07-20 18:33
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
我上传了个代码大家看看能不能在TEST中搞出来生成json的prg
2022-07-24 13:42
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
            Http_Write( "我是应用第一人COOKIE:")
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-07-24 21:31
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:806
专家分:1231
注 册:2021-10-13
收藏
得分:0 
回复 15楼 ls_y041
感谢分享
2022-07-24 21:39
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
专门为vfp而生的
2022-07-24 22:15
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:806
专家分:1231
注 册:2021-10-13
收藏
得分:0 
刚才试了一下,说fll文件无效,郁闷!
2022-07-25 00:31
快速回复:王子的fll可以让vfp实现web化想学习的来学习吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019144 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved