当前位置: 首页 > 知识库问答 >
问题:

如何修复使用MS2XML请求的PDF文件中的损坏。XMLHTTP?

蒋俊人
2023-03-14

朋友们,这是我在这里的第一个问题。。。我在使用MS2XML下载PDF缓冲区时遇到了一些问题。XMLHTTP。我一直在使用Genexus这样做,但我也尝试了纯视觉福克斯专业版。问题是,当我将ResponseText发送到字符串变量时,一些字符被问号替换,sam发生在我将ResponseText发送到pdf或txt文件时。在MS2XML中创建的对象。XMLHTTP。6.0不允许使用ResponseBy属性。关于如何使用MS2XML解决此问题的任何想法。XMLHTTP?谢谢

oHTTP = CreateObject("MSXML2.XMLHTTP.6.0")  
oHTTP.Open("GET", 'https://homologacao.plugboleto.com.br/api/v1/boletos/impressa  /lote/NIKLfYBWz',.F.)
oHTTP.setRequestHeader("content-type", "application/pdf")
oHTTP.Send()
? oHTTP.responseText

我收到了像以下这样的东西(充满问号):

%PDF-1.4%??2 0 obj

共有1个答案

皇甫学海
2023-03-14

因为PDF是二进制文件而不是文本文件,所以你会看到这很正常吗?以及其他各种不可打印的字符。而是将其保存到磁盘上的文件中,并使用类似ShellExecute的东西打开。即:

oHTTP = CreateObject("MSXML2.XMLHTTP.6.0")  
oHTTP.Open("GET", 'https://homologacao.plugboleto.com.br/api/v1/boletos/impressa  /lote/NIKLfYBWz',.F.)
oHTTP.setRequestHeader("content-type", "application/pdf")
oHTTP.Send()

Local lcFileName
lcFileName = Forcepath(Sys(2015)+'.pdf', Sys(2023))
Strtofile(oHttp.responseText, m.lcFileName)

Declare Long ShellExecute In "shell32.dll" ;
    long HWnd, String lpszOp, ;
    string lpszFile, String lpszParams, ;
    string lpszDir, Long nShowCmd

ShellExecute(_vfp.HWnd,'',m.lcFileName,'','',1)

编辑:这不是一个工作MSXML2。XmlHttp.您只需下载PDF文件并打开它:

Local lcFileName, lcRemote
lcRemote = 'https://homologacao.plugboleto.com.br/api/v1/boletos/impressao/lote/NIKLfYBWz'

lcFileName = Forcepath(Sys(2015)+'.pdf', Sys(2023))

If (getFileFromURL(m.lcRemote, m.lcFileName) = 0)
    Declare Long ShellExecute In "shell32.dll" ;
        long HWnd, String lpszOp, ;
        string lpszFile, String lpszParams, ;
        string lpszDir, Long nShowCmd

    ShellExecute(_vfp.HWnd,'',m.lcFileName,'','',1) 
Endif

Procedure getFileFromURL
    Lparameters tcRemoteFile,tcLocalFile
    Declare Integer URLDownloadToFile In urlmon.Dll;
        INTEGER pCaller, String szURL, String szFileName,;
        INTEGER dwReserved, Integer lpfnCB
    Return URLDownloadToFile(0, m.tcRemoteFile, m.tcLocalFile, 0, 0)
endproc
 类似资料:
  • 我试图从一个网站下载所有pdf文件,但创建的每个pdf都已损坏。。。

  • 昨天我使用Xampp创建了一些简单的基于Web的实用工具。今天我想继续工作,但xampp控制面板给了我一些错误。 这是MySQL错误日志: 已经尝试过修复,但mySQL服务甚至无法启动,所以我有点无助。。。

  • 问题内容: 我正在使用apache commons http客户端使用post方法来调用url来发布参数,并且很少抛出以下错误。 有人可以建议导致此异常的原因以及如何对其进行调试吗? 问题答案: 原因是: 最通常的是,在另一端已经关闭连接时写入连接; 通常,对等方关闭连接而不读取其末端已经挂起的所有数据。 因此,在两种情况下,你的应用程序协议定义或实施都不充分。 还有第三个原因,我在这里不做记录,

  • 我正在尝试创建一个zip文件,以便能够通过http发送多个文件。 我的问题是,生成的Zip文件在发送之前和之后都“损坏”。问题是我无法找到我做错了什么,因为我在控制台中没有收到任何错误。 那么,有人有一个想法文件我生成的zip文件损坏? 这是我的代码: 谢谢你的帮助!

  • 问题内容: 我的程序在使用序列化数据(a )到磁盘时被杀死。我现在无法打开部分写入的文件。 是否可以部分或全部恢复数据?如果是这样,怎么办? 这是我尝试过的: 该文件不为空: 注意:字典中的所有数据均由python内置类型组成。 问题答案: 纯Python版本的,即使遇到错误也会保持堆栈,因此您至少可以从中获得一些收益: 我得到以下输出: 泡菜数据格式并不复杂。通读Python模块的源代码,您可能

  • 问题内容: 在更新OSx并安装我的环境的新版本后,我彻底无法解决它。我不确定是什么原因导致的,并列出了我所做的并且最初阅读 无效的 一整套内容。答案部分提供了解决我的问题的方法。 无法修复未找到的命令的原因: 通过自制软件安装python,然后使用pip安装virtualenv 通过https://www.python.org安装python ,然后使用pip安装virtualenv 相关问题对我