Android - POST de Service Web RESTful

Je suis à la recherche de quelques conseils sur la façon de publier des données à un service web dans mon application Android. Malheureusement, c'est un projet d'école, donc je ne suis pas en mesure d'utiliser des bibliothèques externes.

Le service web a une URL de base, par exemple:

http://example.com/service/create

Et prend deux variables, dans le format suivant:

username = "user1"
locationname = "location1"

Le service web RESTful et utilise une structure XML, si cela fait une différence. De ma recherche, je comprends que je devrais être à l'aide de URLconnection plutôt que de le obsolète HTTPconnection, mais je ne peux pas trouver un exemple de ce que je suis à la recherche d'.

Voici ma tentative, qui n'est actuellement pas de travail:

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toPost test = new toPost();
        text.execute();
    }

    private class toPost extends AsyncTask<URL, Void, String> {
        @Override
        protected String doInBackground(URL... params) {
            HttpURLConnection conn = null;
            try {
                URL url = new URL("http://example.com/service");
                conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("POST");
                conn.setDoInput(true);
                conn.setDoOutput(true);
                String body = "username=user1&locationname=location1";
                OutputStream output = new BufferedOutputStream(conn.getOutputStream());
                output.write(body.getBytes());
                output.flush();
            } catch (ProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                conn.disconnect();
            }
            return null;
        }
    }

}
Rénovation en a plein d'exemples
Avez-vous essayé de regarder en Rénovation au lieu de rouler vos propres HttpUrlConnection?
Malheureusement, c'est un projet d'école, donc je ne suis pas en mesure d'utiliser des bibliothèques externes

OriginalL'auteur user3371750 | 2015-11-16