最近,我们已从美联储实施每日一次的路由编号更新,以支持我们的eCheck处理。它已经正常工作了几个星期。我们使用curl获得下载。
请注意:美联储将在2018年12月之后不再支持当前的下载功能。它仍将以类似的方式提供,但需要获得授权。目前,不需要此类授权,任何人都可以下载该表。可以从https://www.frbservices.org/EPaymentsDirectory/download.html的页面直接在浏览器中下载它(首先单击Ageement页面之后)。这些都不是这张票的原因,而是作为背景信息来帮助读者避免走错路。
无论如何,这已经正常工作了一段时间了。但是,现在三个curl调用中的每一个都收到一条错误消息,如下所示:
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
我读到有人说您可能会给curl提供一些额外的参数,以指定要使用的SSL / TLS版本。因此,我尝试添加curl参数--tlsv1.2,-tlsv1和--sslv3。仍然出现相同的错误。以前,不需要这样的参数即可成功下载。
从curl获取详细的输出是有帮助的,但是并不能提供解决方案。
作为参考,用于下载文件的脚本如下:
#!/usr/local/bin/bash
# ref: inspired by https://stackoverflow.com/questions/28865528/basic-curl-form-interaction
#check output file name
if [ -z $1 ]; then
achout=/tmp/FedACHdir.txt
#>&2 echo "Save data to /tmp/FedACHdir.txt"
else
achout=$1
fi
#echo $achout
if [ -z $2 ]; then
#>&2 echo "Full data set"
:
else
str='?updatedSince='
query=$str$2
fi
#echo $query
# Set session cookies
rm /tmp/fedc.txt 2>/dev/null
curl -s -c /tmp/fedc.txt \
https://frbservices.org/EPaymentsDirectory/FedACHdir.txt -o /dev/null
# Submit agreement
curl -s -b /tmp/fedc.txt -c /tmp/fedc.txt -d "agreementValue=Agree" \
-H "Referer:https://frbservices.org/EPaymentsDirectory/agreement.html" \
https://frbservices.org/EPaymentsDirectory/submitAgreement -o /dev/null
echo -e "#HttpOnly_frbservices.org\tFALSE\t/EPaymentsDirectory/\tFALSE\t0\tabaDataCaptureCookie\tabaDataCaptureCookie" >>/tmp/fedc.txt
#cat /tmp/fedc.txt
#read FedACH catalog
curl -s -S -b /tmp/fedc.txt \
https://frbservices.org/EPaymentsDirectory/FedACHdir.txt$query -o $achout
# Cleanup cookies
rm /tmp/fedc.txt 2>/dev/null
此卷曲错误的解决方法是什么?