ASP与ActiveX控件交互实战(三)

翻译|其它|编辑:郝浩|2004-08-13 11:28:00.000|阅读 1613 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


关键字: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

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


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP