geturl powerbuilder 10,没有给出预期的结果

时间:2013-11-15 00:27:13

标签: powerbuilder geturl

我正在使用google api网页上的QR码生成器,并尝试下载传递数据的QR图像。

我的问题是,如果我把URL放在浏览器中(尝试使用Chrome和IE,并且它正在运行)我得到了预期的QR图像,我可以使用其中的“另存为”命令下载,这没关系。但是当我使用相同的URL并使用powerbuilder中的GetURL函数传递它时,显示的QR码与我直接使用浏览器的QR码不同。

URL是:(这是一个示例或将传递的URL。参数字符串chl每次调用时都会有所不同。这是一个需要具有以下格式的字符串:

重新= XAXX010101000 &安培; RR = XAXX010101000 &安培; TT = 1234567890.123456 和ID = ad662d33-6934-459c -a128-BDf0393f0f44

是将改变的大胆字符。 )

https://chart.googleapis.com/chart?cht=qr&chs=480x480&chl=%3Fre%3DXAXX010101000%26rr%3DXAXX010101000%26tt%3D1234567890.123456%26id%3Dad662d33-6934-459c-a128-BDf0393f0f44&choe=UTF-8&chld=M|5

扫描时产生的QR码仅返回编码时的“?re = XAXX010101000”部分,字符串的剩余部分显示为未“编码”。如果我更改了字符串的这一部分,则会反映更改,但字符串的其余部分显示为未收到。

我用来测试的代码是:( mle_urlcbb是我用来存储URL的控件,但是在生产中它将在运行中构建)

Integer li_rc
String ls_filename

SetPointer(HourGlass!)
li_rc = iinet_base.GetURL(mle_urlcbb.text, in_irdata)
IF li_rc = 1 THEN
    ls_filename = "C:\TEST\CBB.PNG"
    in_irdata.of_WriteFile(ls_filename, in_irdata.iblob_data)
    MessageBox("Success", "CBB File Successfully downloaded")
ELSE
   MessageBox("Error", "Get CBB Failed")
END IF

我不知道会出现什么问题,

感谢您的回答和/或建​​议。

...方面

里卡多

1 个答案:

答案 0 :(得分:0)

有一个明显的问题,您正在使用GetURL,然后尝试将互联网结果立即保存到文件中。这是一个常见的错误,实际上我第一次尝试使用inet对象时犯了同样的错误,因为我不习惯在PowerBuilder中进行异步处理。

InternetResult对象充当缓冲区,接收和缓存异步数据,因为它是使用Internet返回以响应GetURL和PostURL函数调用。 InternetResult对象还提供处理此数据的功能。

你现在编码的方式可能会在某些时候工作但是它不能一直工作,因为加载时间可能不是瞬时的。您需要做的就是将结果从现在的位置移动到您的internetdata nvo的“internetresult”事件。

所以..在你的userobject的“internetdata”事件中,你继承了internetresult,你可以在这里获取你的结果页面数据:

// in your non visual that inherited from internetresult put code in the internetdata event to capture the resultant page AFTER it is done loading. :)
string ls_data
ls_data =  String(data,EncodingANSI!)
... then write your file


RETURN 1