| Pobranie danych wejściowych |
Przy metodzie GET : Najprostszy sposób to zachowanie w odpowiednim łańcuchu tekstowym zmiennej środowiskowej QUERY_STRING.
//łańcuch zawierający zmienną środowiskową QUERY_STRING #define QUERY_STRING getenv("QUERY_STRING") void main() { ... printf("%s\n",QUERY_STRING); ... }
Przy metodzie POST : Należy sprawdzić zmienną środowiskową CONTENT_LENGTH. Jeśli będziemy mieli do czynienia z metodą POST zmienna ta będzie zawierała długość danych wejściowych, w przeciwnym przypadku wartość NULL
//łańcuch zawierający zmienną środowiskową CONTENT_LENGTH #define CONTENT_LENGTH getenv("CONTENT_LENGTH") void main() { char *data unsigned int content_length_int ... //jeśli to metoda POST if ( CONTENT_LENGTH != NULL ) { //do zmiennej content_length_int zapisz wartość zmiennej środowiskowowej CONTENT_LENGTH content_length_int = atoi ( CONTENT_LENGTH ); //zarezerwuj pamięć dla danych wejściowych data = ( char * ) malloc (sizeof ( char ) * content_length_int + 1 ); //czytaj ze standardowego wejścia if ( fread ( data , sizeof ( char ) , content_length_int , stdin ) != content_length_int) printf("Błąd podczas czytania ze standardowego wejścia\n"); } //zakończ łańcuch znakiem '\0' data [ content_length_int ] = '\0'; ... //zwolnij pamięć free ( data ) }
Powrót
|