Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[libcurl] ustawienia proxy

Ostatnio zmodyfikowano 2014-02-11 14:45
Autor Wiadomość
tookie009
Temat założony przez niniejszego użytkownika
[libcurl] ustawienia proxy
» 2014-02-10 13:35:57
czesc, mam aplikacje, ktora z curla. Niestety teraz korzystam z jeszcze jednej sieci w szkole i tam lacze sie z netem za pomoca proxy. Chcialbym ta aplikacje tak polepszyc, zebym mogl jej takze w szkole uzywac. Dodalem nsatepujace opcje :

C/C++
curl_easy_setopt( wcurl, CURLOPT_HTTPPROXYTUNNEL, 1 );
curl_easy_setopt( wcurl, CURLOPT_PROXY, "10.100.100.6:8080" );
//znalem tylko nazwe hostu, ktory sluzyl mi jako serwer proxy. IP dowiedzialem sie za pomoca pingowania do tego hostu za pomoca nazwy

// curl_easy_setopt(wcurl, CURLOPT_PROXYUSERPWD, "c13fipassword:sadf12");  to takze nie dzialalo
// dluzsza wersja ustawiania hasla i nazwy uzytkownika, gdyz w powyzszym nie jestem pewien czy to dobrze wprowadzam (oddzeilone :)
curl_easy_setopt( wcurl, CURLOPT_PROXYUSERNAME, "c13fipassword" );
curl_easy_setopt( wcurl, CURLOPT_PROXYPASSWORD, "Wiertlo12" );
curl_easy_setopt( wcurl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );
curl_easy_setopt( wcurl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC );

Ma ktos moze jakos pomysl, co zle robie? Oczywiscie wcurl inicjalizuje potem, wszystko to dzialalo bez proxy teraz dodaje tylko to linijki. Z gory dzieki za pomoc
P-104373
DejaVu
» 2014-02-10 13:48:09
http://stackoverflow.com​/questions/11454217​/using-proxy-server-with-libcurl-can-it-read-default-i-e-settings
http://stackoverflow.com​/questions/1276955​/ntlm-proxy-without-password

Polecam Ci poczytać o użyciu proxy z NTLM, ponieważ właściwa konfiguracja umożliwi Ci automatyczne logowanie do serwera proxy na podstawie ustawień systemowych Windows.
Frazy, które należy wpisać w wyszukiwarkę google:
P-104375
tookie009
Temat założony przez niniejszego użytkownika
» 2014-02-10 15:12:31
z twojego linku skorzytalem wlasnie tez juz i szczerze powiedziawszy skopiowalem to co tam bylo w miedzyczasie doczytujac w doku. Nie wzialem tylko
curl_setopt( $ ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM );
 Oczywiscie to jest dla php, ja odpowiednio to modyfikuje jeszcze dla c++- Niestety dalej nie dziala. o ntlm zaraz bede czytal. Dzieki za rade

 
P-104378
DejaVu
» 2014-02-10 15:38:38
C/C++
curl_easy_setopt( curl, CURLOPT_PROXY, "http://127.0.0.1:8888/" );
Próbowałeś to?
P-104381
tookie009
Temat założony przez niniejszego użytkownika
» 2014-02-10 20:40:47
tak, przy czym ja jeszcze musze sie zalogowac i do tego sa takze dwie drogi. Jedna podaje obydwa parametry (haslo i nazwe uzytwkonika) za jednym zamachem. Uzywalem jej, ale nie jestem pewien, czy dobrze rozdzielalem te dwie skladowe (czy ma byc tylko dwukropek czy dwukropek). Druga "osadza" haslo i nazwe uzytkownika osobno. Tu jestem pewien ze nie robie zadnego bledu.

EDIT: 2. link jest o curlu w konsoli, takze to tez cos innego, ale sprobuje poszukac cos jeszcze o c++

Edit:  Rozwiazanie:
C/C++
curl_easy_setopt( wcurl, CURLOPT_PROXYAUTH, CURLAUTH_NTLM );

faktycznie pomaga. Dziekuje dejavu, bo pewnie bym nigdy nie zauwazyl, ze to przeoczylem ;) Temat zamykam
P-104397
DejaVu
» 2014-02-11 10:34:01
Napisz proszę wszystkie linijki potrzebne do poprawnej obsługi proxy :) (pomijając te, które są wykorzystywane do pobierania czegokolwiek). No chyba, że tylko ta jedna linijka załatwia sprawę :)
P-104419
tookie009
Temat założony przez niniejszego użytkownika
» 2014-02-11 13:25:35
wkleje wszystkie opcje, ktore ustalam ( niekoniecznie wszystkie sa potrzebne ;))), ale jeszcze sie w to nie wglebialem, najwazniejsze to poki co, ze chodzi). Opcje dotyczace tylko proxy sa po if(proxy). To korzysta z ssl, czyli obsluga stron https.

C/C++
string curl::pobierz( const std::string & url )
{
    curl_global_init( CURL_GLOBAL_DEFAULT );
   
    if( proxy ) //to co wspominam w nastepnym temacie z proxy....
    {
        curl_easy_setopt( wcurl, CURLOPT_HTTPPROXYTUNNEL, 1 );
        curl_easy_setopt( wcurl, CURLOPT_PROXY, "10.100.100.6:8080" );
        curl_easy_setopt( wcurl, CURLOPT_PROXYUSERNAME, "fdsfdsdsfs" );
        curl_easy_setopt( wcurl, CURLOPT_PROXYPASSWORD, "Wiertlo12" );
        curl_easy_setopt( wcurl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );
        curl_easy_setopt( wcurl, CURLOPT_PROXYAUTH, CURLAUTH_NTLM );
    }
   
    curl_easy_setopt( wcurl, CURLOPT_URL, url.c_str() );
    curl_easy_setopt( wcurl, CURLOPT_SSL_VERIFYPEER, 0 );
    curl_easy_setopt( wcurl, CURLOPT_FOLLOWLOCATION, 1L );
    curl_easy_setopt( wcurl, CURLOPT_NOSIGNAL, 1 ); //Prevent "longjmp causes uninitialized stack frame" bug
    curl_easy_setopt( wcurl, CURLOPT_ACCEPT_ENCODING, "deflate" );
    std::stringstream out;
    curl_easy_setopt( wcurl, CURLOPT_WRITEFUNCTION, write_data );
    curl_easy_setopt( wcurl, CURLOPT_WRITEDATA, & out );
    /* Perform the request, res will get the return code */
    CURLcode res = curl_easy_perform( wcurl );
    /* Check for errors */
    if( res != CURLE_OK ) {
        fprintf( stderr, "curl_easy_perform() failed: %s\n",
        curl_easy_strerror( res ) );
        //return curl_easy_strerror(res);
    }
    return out.str(); //zwraca zawartosc stronki (text zrodlowy)
}

curl::curl( void ) { wcurl = curl_easy_init(); }

curl::~curl( void ) { curl_easy_cleanup( wcurl ); }
P-104430
DejaVu
» 2014-02-11 14:45:41
No i fajnie :) Ktoś to będzie miał podobny problem będzie miał punkt odniesienia - teraz można zamknąć :) Dzięki!
P-104441
« 1 »
  Strona 1 z 1