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

[SFML] Problem ze współpracą programu z serwerem

Ostatnio zmodyfikowano 2011-06-29 14:24
Autor Wiadomość
a3780459
Temat założony przez niniejszego użytkownika
[SFML] Problem ze współpracą programu z serwerem
» 2011-06-28 19:27:48
kod PHP:
C/C++
//plik: set.php
<? php
if( count( $ _GET ) == 1 )
{
    echo "$_GET['con']";
}
?>

oraz kod programu:
C/C++
sf::Http Server;
Server.SetHost( "www.moja_domena.pl" );
sf::Http::Request Request;
Request.SetMethod( sf::Http::Request::Post );
Request.SetURI( "/set.php?con=TestText" );
Request.SetBody( "" );
Request.SetHttpVersion( 1, 0 );
Server.SendRequest( Request, 0.01f );

Program powinien wysłać "TestText" na serwer. Nie wiem, co robię źle. To pewnie coś banalnego (próbowałem to już zapisać na wszystkie sposoby i nie mam pojęcia co jest źle). To co tu napisałem to jest oczywiście skrócona wersja (oryginalnie na serwerze wartość "con" jest zapisywana do pliku (i stąd wiem, że nie działa), oczywiście po wpisaniu do przeglądarki "www.moja_domena.pl/set.php?con=TextText" wszystko działa poprawnie, więc problem leży po stronie programu).

Bardzo proszę o pomoc.
P-34851
malan
» 2011-06-28 23:03:06
C/C++
#include <fstream>
//...
sf::Http Server;
Server.SetHost( "www.moja_domena.pl" );
sf::Http::Request Request;
Request.SetMethod( sf::Http::Request::Post );
Request.SetURI( "/set.php?con=TestText" );
Request.SetBody( "" );
Request.SetHttpVersion( 1, 0 );

Response result;
result = Server.SendRequest( Request, 0.01f );
if( result.GetStatus() != 200 )
{
    std::ofstream out( "log.log" );
    if( out.fail() )
         return - 12345;
   
    out << result.GetBody();
}
P-34889
a3780459
Temat założony przez niniejszego użytkownika
» 2011-06-29 09:31:12
Nadal nie działa, co prawda nie chodziło mi o odbiór odpowiedzi serwera (pisałem, że oryginalnie na serwerze jest skrypt, który zapisuje wartość con do pliku).

Tak jak napisał malan nie działa. Plik log.log jest zawsze pusty (bez względu na to czy metodę ustawię na Get, Ppost, czy Head).

Nie działa nawet gdy odpowiedź ma przyjść od jakiejkolwiek innej strony (tak jak gdyby program w ogóle nic nie wysyłał).
P-34896
a3780459
Temat założony przez niniejszego użytkownika
» 2011-06-29 14:24:44
Znalazłem rozwiązanie, wreszcie. Działający kod:
C/C++
sf::Http::Request Request;
Request.SetMethod( sf::Http::Request::Get );
Request.SetURI( "/set.php?con=TestText" );
Request.SetBody( "" );
Request.SetHttpVersion( 1, 0 );
sf::Http Http;
Http.SetHost( "www.moja_domena.pl" );
Http.SendRequest( Request );
I wszystko działa (różni się tylko parametrem w metodzie SendRequest). Nie wiem czemu jeśli podam podam inną wartość argumentu Timeout niż domniemana to nie działa. No cóż, nieważne. Dziękuję malan za pomoc.

Zamykam...
P-34922
« 1 »
  Strona 1 z 1