2012-02-19 45 views
2

我想在使用RCurl時以json格式獲取一些數據。R&RCurl:libcurl中的錯誤54

我不得不使用POST輸入用戶名和密碼,如:

postForm(url1, user=x$USERNAME, pass=x$PASSWORD) 

我收到以下錯誤:

Error in function (type, msg, asError = TRUE) : 

SSL閱讀:錯誤:00000000:LIB(0): FUNC(0):原因(0),錯誤號54

如果我研究了正確的錯誤數54從libcurl網站:

CURLE_SSL_ENGINE_SETFAILED (54)

Failed setting the selected SSL crypto engine as default!

如果這是正確的錯誤,我將如何選擇SSL引擎?

回答

8

對不起,但是關於這個錯誤的結論是錯誤的。你看到的輸出是來自libcurl的源代碼中的lib/ssluse.c,並且提到的「errno」是而不是 libcurl錯誤代碼,但是當時的實際errno變量。我不知道通過了解它可以獲得什麼幫助,但我的系統中有54個等於EXFULL。

您應該檢查來自libcurl函數的返回代碼,該函數無法獲得正確的libcurl錯誤代碼,但我想您可能會看到CURLE_RECV_ERROR,因爲libcurl在接收數據時出現SSL問題。

不幸的是,來自openssl的錯誤字符串不是很有幫助,我不知道你爲什麼得到它!

+0

在大多數POSIX系統上是不是errno 54「連接重置由對等」ECONNRESET?至少它在Mac OSX,FreeBSD和Linux上。 – CXJ 2017-04-20 20:19:34

+1

在Linux上: /usr/include/asm-generic/errno.h:#define ECONNRESET 104/*由同級重置連接*/ – 2017-04-20 20:27:16

+0

哇,這不是很方便或有幫助,是嗎? – CXJ 2017-04-20 22:53:55