niedziela, 24 lutego 2008

HTTPRequest.asyncPost

Nie myślałem że trzeba się tak natrudzić by wysłać dane POST z poprawnymi nagłówkami.

Dokumentacja mówi:

asyncPost(java.lang.String url, java.lang.String postData, ResponseTextHandler handler)

Makes an asynchronous HTTP POST to a remote server.
Zastosowanie trywialne ..
HTTPRequest.asyncPost("http://example.pl","id=2",new MyResponseTextHandler());
..prawie, bo żadne dane nie zostały przesłane.

Firebug pokazuję jakie dane POST zostały wysłane (nie do w/w przykładu):

a powinny one wyglądać mniej więcej tak:

Pomyślałem że 2gi parametr postData powinien być jako JSON ale - też nie :/.
Nie ma tego złego bo nauczyłem się generować JSON w GWT :)

Google.pl pomogły znaleźć rozwiązanie - link
wystarczy dodać w kodzie php takie 2 linie kodu i wszystko działa :)

$postData = array();
parse_str(file_get_contents('php://input'), $postData);