尝试通过RCurl::postForm()
发布表单时,我收到此证书验证错误:
Error in function (type, msg, asError = TRUE) :
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
还不熟悉POST表格,有谁能告诉我我做错了什么?
我查看了http://goo.gl/qOf5t的源代码,并确定了列出的第一个航班的POST表格(截至2013-04-09这是FFM - NY为437,97€):
<form data-carrier='["AF"]' method="post" target="_blank" action=
"https://www.fluege.de/flight/itinerary/sFlightInput/bd253d844ad40c38e2334930a849da76/SAB"
class="clearfix itinForm">
<input type="hidden" name="key" value="2" /> <input type="hidden" name="recom"
value="2" /> <input type="hidden" name="type" value="SAB" />
<div class="relative clearfix">
<div class="Pricebox PriceboxWO">
<div class="spiffy spiffytop schemeh1">
<div class="spiffy1">
</div>
<div class="spiffy2">
</div>
<div class="spiffy3">
</div>
<div class="spiffy4">
</div>
</div>
<div class="PriceItin floatfix">
<div class="fll">
Preis p. P. :
</div>
</div>
</div>
</div>
</form>
然后我解雇了这个:
require("RCurl")
x <- RCurl::postForm(
uri="https://www.fluege.de/flight/itinerary/sFlightInput/bd253d844ad40c38e2334930a849da76/SAB",
.params=list(
key=160,
recom=160,
type="SAB"
),
style="POST"
)
答案 0 :(得分:3)
从我在其他地方读到的,问题似乎是RCurl不再包含任何CA信息。
查看以下网址。您可能需要从某处获取CA信息并在本地安装。
http://curl.haxx.se/docs/sslcerts.html
使用getURL,您可以设置一个参数来忽略证书,但我还没有找到一种方法来使用postForm。
答案 1 :(得分:1)
来自RCurl常见问题http://www.omegahat.org/RCurl/FAQ.html
为什么https对我不起作用?
可能是因为当您编译/安装libcurl时,您没有 支持SSL。您可以使用该命令进行检查
curl-config --feature
如果ssl没有出现在那里,你就没有它的支持。您应首先安装SSL(例如openssl)重新安装curl。