Android nie ma specjalnego kodu do wysyłania i odbierania HTTP, możesz użyć standardowego kodu Java. Polecam użycie klienta HTTP Apache, który jest dostarczany z systemem Android. Oto fragment kodu, którego użyłem do wysłania POST HTTP.
Nie rozumiem, co ma z tym wspólnego wysłanie obiektu w zmiennej o nazwie „jason”. Jeśli nie masz pewności, czego dokładnie chce serwer, rozważ napisanie programu testowego, który będzie wysyłał różne ciągi do serwera, dopóki nie będziesz wiedział, w jakim formacie ma być.
int TIMEOUT_MILLISEC = 10000; // = 10 seconds
String postMessage="{}"; //HERE_YOUR_POST_STRING.
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpClient client = new DefaultHttpClient(httpParams);
HttpPost request = new HttpPost(serverUrl);
request.setEntity(new ByteArrayEntity(
postMessage.toString().getBytes("UTF8")));
HttpResponse response = client.execute(request);
postMessage
nie jest zdefiniowanyWysyłanie obiektu json z systemu Android jest łatwe, jeśli używasz klienta Apache HTTP. Oto przykładowy kod pokazujący, jak to zrobić. Powinieneś utworzyć nowy wątek dla działań sieciowych, aby nie blokować wątku interfejsu użytkownika.
Możesz także użyć Google Gson do wysyłania i pobierania JSON.
źródło
źródło
HttpPost
jest przestarzały przez Android Api Level 22. Skorzystaj więcHttpUrlConnection
dalej.źródło
Pod poniższym linkiem dostępna jest zaskakująco ładna biblioteka dla protokołu HTTP dla Androida:
http://loopj.com/android-async-http/
Proste żądania są bardzo łatwe:
Aby wysłać JSON (kredyt do `voidberg 'na https://github.com/loopj/android-async-http/issues/125 ):
Wszystko jest asynchroniczne, działa dobrze z systemem Android i bezpieczne do wywoływania z wątku interfejsu użytkownika. Obiekt responseHandler będzie działał w tym samym wątku, z którego został utworzony (zazwyczaj jest to wątek interfejsu użytkownika). Ma nawet wbudowany resonseHandler dla JSON, ale wolę używać google gson.
źródło
Odkąd
HttpClient
jest przestarzały, obecnie działający kod ma używaćHttpUrlConnection
do tworzenia połączenia oraz zapisywania i odczytywania połączenia. Ale wolałem używać salwy . Ta biblioteka pochodzi z systemu Android AOSP. Znalazłem bardzo łatwy w użyciuJsonObjectRequest
lubJsonArrayRequest
źródło
Nie ma nic prostszego niż to. Użyj OkHttpLibrary
Utwórz plik json
i wyślij to w ten sposób.
źródło
źródło