2016-08-30 7 views
0

libCurlでFTPアクションを実行する前にこのコードを使用してHTTPプロキシアドレスを設定しています。接続しようとしているFTPサーバーがインターネットにあります(S & Pのサーバー)libcURLでHTTPプロキシ経由でFTPサーバーに接続できません

curl_easy_setopt(m_pCURLSession, CURLOPT_PROXY, m_strProxy); //m_strProxy is a CString object having the overloading of the cast operator (const char*) so no problems here ! 
curl_easy_setopt(m_pCURLSession, CURLOPT_HTTPPROXYTUNNEL, 1); 

同じコードがHTTP操作で問題なく動作します。

私のHTTPプロキシサーバー(FreeProxyで作成)は、WinSCPやFileZillaでうまく動作します。

問題であり、以下、HTTPプロキシは、私がこのcURLのエラーを得た別のマシンに配置されている場合:

エラー= 55私が入れた場合、ピア

へのデータ送信に失敗しました同じマシンのHTTPプロキシです。このエラーが発生しました:

(エラー= 56 |ピアからのデータ受信時にエラーが発生しました)!

私はこの命令を削除します。

curl_easy_setopt(m_pCURLSession, CURLOPT_HTTPPROXYTUNNEL, 1); 

私はFTPリモートdirectortyのリストを要求したとき、私はリストを期待しています一方、私は....無用HTMLレスポンスを受信奇妙な応答を得ました私がプロキシを使用しないときのようにファイル/フォルダ名は"\r\n"で区切られています。

答えて

0

ソリューションは、シンプルだが明らかにされていません。

curl_easy_setopt(m_pCURLSession, CURLOPT_FTP_USE_EPSV, 0); 
:このオプションを使用する古いバージョンでHTTPプロキシを介してFTPトンネリングに関連する既知のバグがありますので、すべての最初は、最新libcURLはバージョンにアップグレード
関連する問題