我试图使用 http://www.jongsma.org/ GC /脚本/ ofx-ba.py 抢从美联银行的银行帐户信息。有没有运气,我决定,我只是尝试手动构建使用这个例子

所以,我有这个文件,我想作为请求数据来使用。让我们req.ofxsgml调用它:

FXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX>
  <SIGNONMSGSRQV1>
    <SONRQ>
      <DTCLIENT>20071015021529.000[-8:PST]
      <USERID>TheNameIuseForOnlineBanking
      <USERPASS>MySecretPassword
      <LANGUAGE>ENG
      <FI>
        <ORG>Wachovia
        <FID>4309
      </FI>
      <APPID>Money
      <APPVER>1700
    </SONRQ>
  </SIGNONMSGSRQV1>
  <BANKMSGSRQV1>
    <STMTTRNRQ>
      <TRNUID>438BD6F4-2106-4C88-8DE5-7625915A2FC0
      <STMTRQ>
        <BANKACCTFROM>
          <BANKID>061000227
          <ACCTID>101555555555
          <ACCTTYPE>CHECKING
        </BANKACCTFROM>
        <INCTRAN>
          <INCLUDE>Y
        </INCTRAN>
      </STMTRQ>
    </STMTTRNRQ>
  </BANKMSGSRQV1>
</OFX>

然后,在python,我尝试:

>>> import urllib2
>>> query = open('req.ofxsgml').read()
>>> request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&amp;pagename=PFM',
                              query,
                              { "Content-type": "application/x-ofx",
                                "Accept": "*/*, application/x-ofx"
                              })
>>> f = urllib2.urlopen(request)

此命令给我500和此回溯。我不知道什么是错我的要求。

访问没有数据的URL和用于标头中没有关注,

>>> f = urllib2.urlopen('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&amp;pagename=PFM')

产生同样的事情访问该网址直接,

HTTPError: HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>.

这是很明显的,但只是一个观察。关于这个问题的一切都似乎是相当过时。希望写一个简单的python OFX模块开源。也许已经有发展,我没有设法找到的东西吗?

修改 - 如果我使上述信息的平坦映射:

d = {'ACCTID': '10555555',
 'ACCTTYPE': 'CHECKING',
 'APPID': 'Money',
 'APPVER': '1700',
 'BANKID': '061000227',
 'DTCLIENT': '20071015021529.000[-8:PST]',
 'FID': '4309',
 'INCLUDE': 'Y',
 'LANGUAGE': 'ENG',
 'ORG': 'Wachovia',
 'TRNUID': 'I18BD6F4-2006-4C88-8DE5-7625915A2FC0',
 'USERID': 'm48m40',
 'USERPASS': '12397'}

和然后用urlencode它,使与作为数据的请求

query=urllib.urlencode(d)
request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&amp;pagename=PFM',
                              query,
                              { "Content-type": "application/x-ofx",
                                "Accept": "*/*, application/x-ofx"
                              })

f = urllib2.urlopen(request)
HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>
有帮助吗?

解决方案

可以只被认证? (或其缺乏?)

其他提示

但问题是,你以前在数据传递从文件直接作为数据参数的Request。你读的文件包含标题,您应该可以发送数据。你需要分别提供头文件和数据,你现在已经完成。

HTTP错误403意味着请求被正确的,但该服务器拒绝回应。你是否已经注册了,并安排使用您尝试访问Web服务的权限?如果是的话是有一些认证,你需要发出请求之前做?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top