我正在使用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
是将改变的大胆字符。 )
扫描时产生的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
我不知道会出现什么问题,
感谢您的回答和/或建议。
...方面
里卡多
答案 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