如何在 PowerBuilder 中捕获来自服务器的响应
How to capture response from a server in PowerBuilder
假设我们有一个服务器,当用 URL 触发时(数据在 URL 中),服务器通过创建 PDF 文件进行响应。
在 PowerBuilder 工具中,我们通过 PostURL() 触发 URL:
int ll_return
inet_base = CREATE inet
ll_return = inet_base.postURL('http://server:8080/postRender?', Blob, header string, port#, internetData)
在 postURL 参数中,Blob 是附加到 URL 的数据。数据被转换为 blob,然后作为参数传递。
postURL 函数的详细信息如下 link:
http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/CCJCIIFD.htm
考虑服务器 returns 404 代码,其中包含如下消息:未找到文件!
我需要帮助编写 PowerBuilder 代码来捕获服务器的响应。目前,由于我们使用 PostURL 函数来触发 POST 请求,在 return 中我只得到整数,例如:
1 次成功
-1 一般错误
-2无效URL
-4 无法连接到互联网
-5 尝试了不支持的安全 (HTTPS) 连接
-6 上网请求失败
深入研究这个问题后,我发现可以捕获来自服务器的响应消息。
参考以上代码:
int ll_return
inet_base = CREATE inet
ll_return = inet_base.postURL('http://server:8080/postRender?', Blob, header string, port#, internetData)
PostURL 函数的最后一个参数是一个名为 InternetData 的对象。 InternetData 是一个对象,它包含一个名为 internetdata(blob data) 的函数。
来自服务器的响应消息被捕获在变量blob 数据 中。
我们需要将数据转换成String,如下:
is_data = String(data, EncodingANSI!)
变量 is_data
将包含 HTML 脚本,该脚本由来自服务器的响应消息组成。
创建 internetResult 类型用户对象的方法:
- 单击“文件”>“新建”
- Select PB对象选项卡
- Select 标准 Class 并单击“确定”
- Select 标准 Class 输入 internetresult 并单击确定。
你是对的!
传入postURL函数的对象基本上是一个回调对象。该对象的回调函数是 InternetData(blob Data)。
因此您需要从 InternetResult 创建一个后代 class 并实现 InternetData 函数以按照您认为合适的方式处理接收到的数据块。
假设我们有一个服务器,当用 URL 触发时(数据在 URL 中),服务器通过创建 PDF 文件进行响应。
在 PowerBuilder 工具中,我们通过 PostURL() 触发 URL:
int ll_return
inet_base = CREATE inet
ll_return = inet_base.postURL('http://server:8080/postRender?', Blob, header string, port#, internetData)
在 postURL 参数中,Blob 是附加到 URL 的数据。数据被转换为 blob,然后作为参数传递。
postURL 函数的详细信息如下 link: http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/CCJCIIFD.htm
考虑服务器 returns 404 代码,其中包含如下消息:未找到文件!
我需要帮助编写 PowerBuilder 代码来捕获服务器的响应。目前,由于我们使用 PostURL 函数来触发 POST 请求,在 return 中我只得到整数,例如:
1 次成功
-1 一般错误
-2无效URL
-4 无法连接到互联网
-5 尝试了不支持的安全 (HTTPS) 连接
-6 上网请求失败
深入研究这个问题后,我发现可以捕获来自服务器的响应消息。
参考以上代码:
int ll_return
inet_base = CREATE inet
ll_return = inet_base.postURL('http://server:8080/postRender?', Blob, header string, port#, internetData)
PostURL 函数的最后一个参数是一个名为 InternetData 的对象。 InternetData 是一个对象,它包含一个名为 internetdata(blob data) 的函数。
来自服务器的响应消息被捕获在变量blob 数据 中。 我们需要将数据转换成String,如下:
is_data = String(data, EncodingANSI!)
变量 is_data
将包含 HTML 脚本,该脚本由来自服务器的响应消息组成。
创建 internetResult 类型用户对象的方法:
- 单击“文件”>“新建”
- Select PB对象选项卡
- Select 标准 Class 并单击“确定”
- Select 标准 Class 输入 internetresult 并单击确定。
你是对的!
传入postURL函数的对象基本上是一个回调对象。该对象的回调函数是 InternetData(blob Data)。
因此您需要从 InternetResult 创建一个后代 class 并实现 InternetData 函数以按照您认为合适的方式处理接收到的数据块。