考虑到我们有一个服务器,当用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功能的详细信息在以下链接中: http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/CCJCIIFD.htm
请考虑服务器返回 404 代码,其中包含以下消息:找不到文件!
我需要帮助来编写PowerBuilder代码来捕获服务器的响应。目前,由于我们使用PostURL函数来触发POST请求,作为回报我只得到整数,如:
1成功
-1一般错误
-2无效网址
-4无法连接到互联网
-5尝试了不支持的安全(HTTPS)连接
-6互联网请求失败
答案 0 :(得分:1)
在深入研究这个问题之后,我发现可以捕获来自服务器的响应消息。
参考上述代码:
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 data 中捕获。 我们需要将数据转换为String,如下所示:
is_data = String(data, EncodingANSI!)
变量is_data
将包含HTML脚本,该脚本由来自服务器的响应消息组成。
创建internetResult类型的用户对象的方法:
答案 1 :(得分:0)
你是对的!
传递给postURL函数的对象基本上是一个回调对象。该对象的回调函数是InternetData(blob Data)。
因此,您需要从InternetResult类创建一个后代,并实现InternetData函数以根据需要处理接收到的数据块。