2017-04-05 67 views
1

考虑到我们有一台服务器,当它通过URL(URL中的数据)触发时,服务器通过创建PDF文件来响应。如何在PowerBuilder中捕获服务器的响应

在PowerBuilder工具,我们通过PostURL()触发的网址:

int ll_return 
inet_base = CREATE inet 
ll_return = inet_base.postURL('http://server:8080/postRender?', Blob, header string, port#, internetData) 

在postURL说法,斑点是附加在该URL中的数据。数据被转换为blob,然后作为参数传递。

的postURL功能的细节是在下面的链接: http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/CCJCIIFD.htm

考虑服务器与一些消息像返回代码:找不到文件!

我需要帮助编写PowerBuilder代码来捕获服务器的响应。目前,由于我们使用PostURL功能触发POST请求,作为回报,我只得到了整数,如:

  • 1成功

  • -1常规错误

  • -2无效的网址

  • -4无法连接到互联网

  • -5不支持安全(HT TPS)连接尝试

  • -6互联网请求失败

回答

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数据)的函数的对象。

来自服务器的响应消息被捕获到变量blob数据中。 我们需要将数据转换为字符串如下:

is_data = String(data, EncodingANSI!) 

变量is_data将包含HTML脚本,其中包括来自服务器的响应消息。

方法来创建用户对象的internetResult类型:

  • 点击文件>新建
  • 选择PBObject标签
  • 选择标准类,然后单击OK
  • 选择标准类类型为internetresult并点击确定。
0

你是对的!

传递给postURL函数的对象基本上是一个回调对象。该对象的回调函数是InternetData(blob Data)。

所以你需要从InternetResult类创建一个后代,并实现InternetData函数来处理接收到的数据块,只要你认为合适。

相关问题