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

dev-cpp curl reakcja przy braku poprawnego linku

Ostatnio zmodyfikowano 2012-05-04 08:50
Autor Wiadomość
diunida
Temat założony przez niniejszego użytkownika
dev-cpp curl reakcja przy braku poprawnego linku
» 2012-05-03 22:42:55
Witam, mam taki problem, chciałbym odebrać dane z pliku umieszczonego na serwerze www, z tym sobie radzę, mam problem z sytuacją gdy nie ma dostępu do tego pliku, wyłączył się serwer, będzie to sytuacja na którą muszę odpowiednio zareagować.
Jak zrobić takie coś, jestem w miarę nowy jeżeli chodzi o c++.

Jak sprawdzić, czy w zmiennej "st" jest coś zapisane (czy curl coś odczytał), proste 'if ( st );' nie działa, wyrzuca błąd przy kompilacji.

Na razie mam taki kawałek kodu:
C/C++
#include <cstdio>
#include <curl/curl.h>
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>


using namespace std;

size_t write_callback( char * ptr, size_t size, size_t nmemb, void * userdata )
{
    string & str = *(( std::string * ) userdata );
    str.append( ptr, size * nmemb );
    return size * nmemb;
}

int main()
{
   
    ifstream plikk; // Zmienna dzięki, której operujemy na pliku
    plikk.open( "config_ups.txt", ios::in ); // Otwiera plik
    char adres[ 1000 ]; // Zmienna pomocnicza, do której zapisujemy dane z pliku
    plikk >> adres; // Tutaj jest zapisywane
    cout << "adres - " << adres; // Wyświetlamy na ekran
   
    CURL * curl;
    CURLcode res;
    string st, bat, stan;
    int bati, stani;
   
    curl = curl_easy_init();
    cout << endl << "zzz -" << adres << "-" << endl;
    if( curl )
    {
        curl_easy_setopt( curl, CURLOPT_URL, adres );
        curl_easy_setopt( curl, CURLOPT_TIMEOUT, 3 );
        curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, & write_callback );
        curl_easy_setopt( curl, CURLOPT_WRITEDATA, & st );
        res = curl_easy_perform( curl );
       
        bat = st.substr( 0, 1 );
        bati = strtol( bat.c_str(), NULL, 10 );
        bati = bati + 3;
        stan = st.substr( 2, 1 );
        stani = strtol( stan.c_str(), NULL, 10 );
        stani = stani + 3;
       
        cout << '\n' << "bazyl " << st << '\n';
        cout << "bat " << bati << '\n';
        cout << "stan " << stani << '\n';
       
    }
    return 0;
}
P-55932
diunida
Temat założony przez niniejszego użytkownika
» 2012-05-04 08:50:43
dla potomnych, rozwiązaniem jest:
C/C++
if( st == "" )
P-55954
« 1 »
  Strona 1 z 1