2017-05-19 32 views
0

当我使用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". 
+0

你说你得到一个错误。那是什么错误? –

+0

哪个OpenEdge发行版和Service Pack? –

+0

@MikeFechner Release 11.6 –

回答

1

我曾尝试在OpenEdge 11.7(64位)的示例代码,它似乎下载没有问题,这两个文件。

OpenEdge.net.pl已在整个OpenEdge 11.6服务包中更新。 11.6.3是最近的一个。我建议你尝试升级到11.6.3(OpenEdge 11.6的服务包3)并重试。

+0

谢谢!我将用11.6.3运行测试。 –

+0

更新软件包后,程序表现正常。谢谢你的提示!谢谢!!!!! –