PB使用http协议、https协议(简单便捷)

PB使用HTTP协议、HTTPS协议

       PB自身也有http组件,但使用起来较为繁琐。VDN作者将http功能通过API的形式封装为HttpClient组件,PB直接调用即可,支持http及https协议,客户端组件免费供PB开发者使用。也可通过VDN快速搭建自己的Http服务器。

    QQ技术交流群: 130377874 获取最新版本VDN组件

一、导入组件

1.1、首先将Example\IE运行导入组件\导入组件\PB*\uo_vdncore.sru组件导入到PB项目中

   将uo_vdncore组件拖到窗体,更名为uo_vdn

      

1.2、将DataClient\VesnDataCleint.dll拷贝到程序目录。

二、GET、POST请求

2.1 GET

//=====================================================
// 描述: 通过hc_get函数可以直接以Get方式向指定的URL发起请求
//=====================================================
string ls_html
if uo_vdn.hc_get("http://www.xxx.com/",ref ls_html)=1 then
       mle_1.text=ls_html
else
       messagebox("错误",uo_vdn.LastError)
end if

还可以设置设定接收服务器端返回的数据的格式Accept(Content-Type)

uo_vdn.accept= uo_vdn.ContentType_JSON //返回JSON格式:application/json

扩展示例通过GET方式从第三方平台获取快递信息

PB使用http协议、https协议(简单便捷)_第1张图片

//=============================================
// 描述:演示通过第三方平台查询快递
//=============================================
String ls_rtn,ls_message
String ls_parm
//该ID为测试ID,如需正式使用请联系:http://q.kdpt.net/
ls_parm = '?id=***&com=auto&nu='+sle_no.Text +'&show=json&order=desc'
//返回格式
uo_vdn.accept = uo_vdn.ContentType_JSON //返回JSON格式:application/json
//获取
If uo_vdn.hc_get("http://q.kdpt.net/api"  + ls_parm,Ref ls_rtn) = 1 Then
       mle_1.Text = ls_rtn
       //解析返回值
       nvo_json n_json
       n_json = Create nvo_json
       n_json.Parse(ls_rtn)
       //关键消息 ok为成功
       ls_message = n_json.GetValue("message")
       If ls_message = "ok" Then
              //状态
              sle_state.text=n_json.GetValue("state")
              //解析到DW或者DS中
              n_json.item2dw("data",dw_1)
       Else
              MessageBox("错误",ls_message)
       End If
       Destroy n_json
Else
       MessageBox("错误",uo_vdn.LastError)
End If

2.2、 POST

///=============================================
// 描述: 通过hc_post函数可以直接以Post方式向指定的URL发起请求
//=============================================
string ls_html
uo_vdn.contenttype=uo_vdn.contenttype_urlencoded //指定发送的内容类型 可选
if uo_vdn.hc_post(sle_server.text,"wd=vdn",ref ls_html)=1 then
       mle_1.text=ls_html
else
       messagebox("错误",uo_vdn.LastError)
end if

三、Header、Cookie

在发起Get或Post Http请求,之前可以设置Header和Cookie,在服务器端响应后,可以获取返回的Header和Cookie值

uo_vdn.headerlist:Header列表

uo_vdn.hc_getHeader(Key)://获取单个Header值

uo_vdn.hc_setHeader(Key)://设置值

uo_vdn.cookielist:Cookie列表

uo_vdn.hc_getCookie(Key)://获取单个Cookie值

uo_vdn.hc_setCookie(Key)://设置Cookie值

//=============================================
// 描述:header及cookie的处理
//=============================================
string ls_html
if uo_vdn.hc_get("https://www.baidu.com/",ref ls_html)<>1 then return
//header
mle_1.text= uo_vdn.headerlist
//获取单个header的值使用hc_getheader
mle_1.text+=uo_vdn.hc_getheader("Content-Type")
//设置header值使用 hc_setheader(key,value)
//cookie
mle_1.text+= uo_vdn.cookielist
//获取单个cookie的值(根据站点的实际值处理)
mle_1.text+= uo_vdn.hc_getcookie("BAIDUID")
//设置cookie值使用 hc_setcookie(key,value)

四、上传到服务器

4.1、 上传文件

If  uo_vdn.hc_upfile("http://www.xxx.com/Default.aspx","j:\1.png") = 1 Then
       MessageBox("成功","文件上传完毕")
Else
       MessageBox('错误',uo_vdn.LastError)
End If

4.2、上传BLOB

If uo_vdn.hc_upfile("http://www.xxx.com/Default.aspx",lb_data,"test.txt") = 1 Then
       MessageBox("成功","文件上传完毕")
Else
       MessageBox('错误',uo_vdn.LastError)
End If

五、下载文件

5.1、下载文件

ls_url="https://www.baidu.com/img/baidu_jgylogo3.gif"
if uo_vdn.downfile(ls_url,ls_path) =1 then 
       mle_1.text="文件下载完毕 存储在:"+uo_vdn.FilePath
end if

5.2、下载文件到BLOB

blob a_blob
if uo_vdn.downfile("https://www.baidu.com/img/baidu_jgylogo3.gif",ref a_blob)=1 then
       p_1.setpicture(a_blob)
else
       messagebox("错误",uo_vdn.LastError)
end if

六、其他属性

可以设置http请求的Referer、UserAgent、ContentType、Accept、ContentLength等属性,详见帮助文档

小结

也可以异步上传和下载文件,更多示例代码(Example\PB演示示例)及说明文档HttpClient一节。该组件同时支持Http(Https)协议的Get、Post,获取和设置页面内容、Header、Cookie等常规的Http操作

 

PB使用http协议、https协议(简单便捷)_第2张图片

     通过VDN组件PB还可以支持JOSN、加密、解密、压缩、解压缩、二维码、发送手机短信、查询快递等功能。

VDN还可以搭建自己的服务器端,快速的实现C/S转B/S运行、自动升级、微信公众号、微信企业公众号、微信扫码支付、钉钉平台、互联网数据库高速连接、Web App\WebAPI等功能

PB使用http协议、https协议(简单便捷)_第3张图片

 

你可能感兴趣的:(VDN)