Я ищу некоторые рекомендации по отправке данных в веб-службу в приложении для Android. К сожалению, это школьный проект, поэтому я не могу использовать внешние библиотеки.Android - POST для веб-службы RESTful
Веб-сервис имеет базовый URL, например:
http://example.com/service/create
И берет две переменные, в следующем формате:
username = "user1"
locationname = "location1"
Веб-сервис RESTful и использует структуру XML, если это имеет значение. Из моих исследований я понимаю, что должен использовать URL-соединение, а не устаревшее HTTP-соединение, но я не могу найти пример того, что я ищу.
Вот моя попытка, которая в настоящее время не работает:
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;
}
}
}
дооснащения имеет множество примеров –
вы пробовали смотреть в Модернизированный вместо прокатки свой собственный HttpURLConnection? –
К сожалению, это школьный проект, поэтому я не могу использовать внешние библиотеки. – user3371750