zoukankan      html  css  js  c++  java
  • ASP与ActiveX控件交互实战(三)

    龙卷风

    关键字:ASP,ActiveX控件,数字签名,安全

    问题提出:

    ActiveX控件得到客户端的信息,如何传递到服务端???

    一种方法就是得到值后,使用Get,Post方式提交,这可能也是最常用的.

    有没有更好一些的方法呢?

    能不能在控件中直接向服务器发出请求而得到数据呢?

    打开vb6,新建ActiveX控件工程。

    工程名:fOcx,用户控件名:UC3

    添加1个按钮,2个文本框

    代码如下:

    Option Explicit

    Private Sub Command1_Click()

    '注意字符串和数字的写法有些区别

    '使用AsyncRead通过HTTP发送你的请求

    UserControl.AsyncRead "http://yang/xml/activex.asp?s1=" & Text1.Text & "", vbAsyncTypeByteArray

    UserControl.AsyncRead "http://yang/xml/activex.asp?s1=" & Text1.Text, vbAsyncTypeByteArray

    End Sub

    'AsyncReadComplete 事件用来从asp页面接受和分析。

    '当容器刚完成一个异步读取请求时 , 发生该事件?

    'AsyncProp 中的数值指定了已完成的某个异步数据读取请求,

    '它与前一个 AsyncRead 方法调用中的数据匹配。

    'AsyncReadComplete 事件过程中应包含错误处理代码,因为错误状态会终止下载。

    '如果发生了这种情况,当访问 AsyncProperty 对象的 Value 属性时将会发生错误。

    Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty)

    On Error GoTo errhandle

    Text2.Text = ByteArrayToString(AsyncProp.Value)

    errhandle:

    Err.Raise 601, "异步读取发生了错误", Err.Description

    End Sub

    '将字节数组转换成字符串

    Public Function ByteArrayToString(bytArray() As Byte) As String

        Dim sAns As String

        sAns = StrConv(bytArray, vbUnicode)

        ByteArrayToString = sAns

    End Function

    我们来看看http://yang/xml/activex.asp这个文件

    <%

    dim str

    str=request("s1")

    if str="name" then

    response.write ("龙卷风")

    elseif str="age" then

    response.write ("26")

    else

    response.write ("没有可用信息返回")

    end if

    %>

    很简单,使用request接受参数,response返回。

    这个例子可以进一步处理,将服务器名以属性的方式传递给控件。

    比如:<PARAM NAME="ServerName" VALUE="192.168.0.1 ">

    然后在程序中得到,就可以使用了,如:

    UserControl.AsyncRead "http://192.168.0.1/xml/activex.asp?s1=" & Text1.Text & "", vbAsyncTypeByteArray

    然后在程序中得到就可以灵活处理了

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    svn:ignore 设置忽略文件
    Css让文字自适应Table宽度[转]
    自学python笔记
    java代码中添加log4j日志
    maven多模块项目搭建
    js || 与&&
    java内存溢出和tomcat内存配置
    xsl:for-each中引用循环外全局变量
    quartz启动两次(tomcat)
    pymysql简单封装
  • 原文地址:https://www.cnblogs.com/Athrun/p/1127637.html
Copyright © 2011-2022 走看看