当我使用Progress指示的例程下载PDF文件时,出现以下问题。某些文件正确下载,其他文件只能带一个部分,因此该文件无效。从ABL代码下载PDF文件时出错
我做了2个随机链接的测试,其中一个是正确的,另一个有错误。
有没有人遇到过这种情况?
参考:http://knowledgebase.progress.com/articles/Article/How-to-download-PDF-files-from-ABL-code
谢谢!
我的代码:
/* http://knowledgebase.progress.com/articles/Article/How-to-download-PDF-files-from-ABL-code */
/* Article Number 000080110 */
USING OpenEdge.Core.*.
USING OpenEdge.Net.HTTP.*.
USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
DEFINE VARIABLE oRequestBody AS WidgetHandle NO-UNDO.
DEFINE VARIABLE oResponseMemptrEntity AS OpenEdge.Core.Memptr NO-UNDO.
DEFINE VARIABLE oByteBucket AS OpenEdge.Core.ByteBucket NO-UNDO.
/*IT'S OK*/
oRequest = RequestBuilder:GET ("http://www.pdf995.com/samples/pdf.pdf"):Request.
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
oByteBucket = CAST(oResponse:Entity,OpenEdge.Core.ByteBucket).
oResponseMemptrEntity = oByteBucket:GetBytes().
COPY-LOB FROM oResponseMemptrEntity:Value TO FILE "c:\temp\FILE-OK.pdf".
/*IT'S ERROR*/
oRequest = RequestBuilder:GET ("http://www.axmag.com/download/pdfurl-guide.pdf"):Request.
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
oByteBucket = CAST(oResponse:Entity,OpenEdge.Core.ByteBucket).
oResponseMemptrEntity = oByteBucket:GetBytes().
COPY-LOB FROM oResponseMemptrEntity:Value TO FILE "c:\temp\FILE-ERROR.pdf".
你说你得到一个错误。那是什么错误? –
哪个OpenEdge发行版和Service Pack? –
@MikeFechner Release 11.6 –