2017-05-19 4 views
0

Lorsque j'exécute un test avec la routine indiquée par Progress pour télécharger un fichier PDF, j'ai le problème suivant. Certains fichiers sont téléchargés correctement, d'autres n'apportent qu'une seule partie, et le fichier n'est donc pas valide.Erreur lors du téléchargement du fichier PDF à partir du code ABL

J'ai fait le test avec 2 liens aléatoires, où l'un d'entre eux est correct, et l'autre a une erreur.

Quelqu'un a-t-il jamais rencontré cette situation?

Référence: http://knowledgebase.progress.com/articles/Article/How-to-download-PDF-files-from-ABL-code

Merci!

Mon 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

Vous dites que vous obtenez une erreur. Quelle est cette erreur? –

+0

Quel OpenEdge Release et Service Pack? –

+0

@MikeFechner Version 11.6 –

Répondre

1

J'ai essayé votre exemple de code sur OpenEdge 11.7 (64 bits) et il semble télécharger les fichiers sans problème.

OpenEdge.net.pl a été mis à jour dans tous les Service Packs OpenEdge 11.6. 11.6.3 est le plus récent. Je vous suggère d'essayer de passer à la version 11.6.3 (Service Pack 3 d'OpenEdge 11.6) et de réessayer.

+0

Merci! Je vais lancer les tests avec 11.6.3. –

+0

Après une mise à jour du paquet, le programme s'est comporté correctement. Merci pour le conseil! Merci!!!!! –