Локально вызывать веб-службу RESTful, созданную IDE NetBeans из Android?
поэтому среда IDE NetBeans может генерировать веб-службу RESTful из базы данных (таблица была упакована в класс сущностей). Я следил за этимруководство и веб-служба RESTful была успешно создана.
Теперь я хотел бы позвонить из моего приложения для Android, но пока не повезло. Я использовал «Android-асинхронный Http-клиент, основанный на обратном вызове Http Client Library для Android»
Вот мой фрагмент кода:
customActionBarView.findViewById(R.id.actionbar_done).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// "Done"
String id = generateId();
EditText number = (EditText) findViewById(R.id.caller_phone_number);
EditText information = (EditText) findViewById(R.id.caller_information);
checkAvailability(id, number.getText().toString(), information.getText().toString());
finish();
}
});
и это:
public void processWebServices(RequestParams params) {
AsyncHttpClient client = new AsyncHttpClient();
client.post("http://localhost:8080/AndroidRESTful/com.erikchenmelbourne.entities.caller/create", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
try {
JSONObject obj = new JSONObject(response.toString());
if (obj.getBoolean("status")) {
setDefaultValues();
Toast.makeText(getApplicationContext(), "Information has been sent!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response is invalid]!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
@Override
public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
if (i == 404) {
Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show();
} else if (i == 500) {
Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show();
}
}
});
}
и вот метод POST, сгенерированный IDE NetBeans:
@Path("/create")
@POST
@Consumes({"application/xml", "application/json"})
public void create(@QueryParam("id") int id, @QueryParam("number") String number, @QueryParam("information") String information) {
Caller entity = new Caller (id, number, information);
super.create(entity);
}
Я добавил аннотацию @Path ("/ create") и немного изменил метод.
Пожалуйста, пролите немного света, я новичок в этом, поэтому я понятия не имею. Я знаю, что это из-за некоторых очень глупых ошибок, но, пожалуйста, помогите. Программа останавливается на
«Произошла непредвиденная ошибка! [Наиболее распространенная ошибка: возможно, устройство не подключено к Интернету или удаленный сервер не запущен]»
, Так очевидно, что я не мог соединить две программы хорошо.