У меня есть таблица под названием «LocalPhoneNum» на сервере Backendless. Он содержит три объекта. Каждый из них имеет имя, номер телефона и адрес электронной почты. Все три из этих объектов имеют одинаковое электронное письмо. Вот как это выглядит.Android Studio - Удаление массивных данных из таблицы данных без перегиба
Мне нужно, чтобы выяснить, как удалить все три объекта программно из моего Android приложения с помощью «Bulk Удалить» вариант найти в API Backendless REST: https://backendless.com/documentation/data/rest/data_deleting_data_objects.htm
Я хотел бы для того, чтобы удаление произошло, как только будет создан метод onCreateView() моего фрагмента. Мое приложение очень простое. Запускается Фрагмент, вызывается класс ASyncTask, и данные удаляются в фоновом режиме. Моя проблема заключается в том, что у меня нет большого опыта, делающего эти типы вызовов на сервере и просто не знаю правильного синтаксиса для этого. Я искал везде, но не могу найти чистый ответ.
Вот то, что я до сих пор:
- Мой класс Фрагмент содержит личное строку под названием API_URL, которая содержит соответствующий URL, чтобы удалить объекты в соответствии с инструкциями Backendless найти здесь:
Это то, что выглядит мой фрагмент класса как:
public class ContactsFragments extends Fragment {
private View view;
private final String API_URL = "https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where%3DuserEmailID%[email protected]";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_contacts_fragments, container, false);
new DeleteBulkFromBackEnd().execute();
return view;
}}
H ERE является AsyncTask() Класс, который призван сделать работу:
class DeleteBulkFromBackEnd extends AsyncTask<Void,Void,String>{
StringBuilder stringBuilder;
@Override
protected String doInBackground(Void... params) {
HttpURLConnection urlConnection = null;
try {
URL url = new URL(API_URL);
urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestProperty("application-id","12345678");
urlConnection.setRequestProperty("secret-key","12345678");
urlConnection.setRequestProperty("application-type", "REST");
urlConnection.connect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
urlConnection.disconnect();
}
return null;
}
}
Мой главный вопрос, что я здесь отсутствует синтаксически? Когда я копирую и вставляю URL-адрес, который использует мое приложение (https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where%3DuserEmailID%[email protected]), в браузере отображается страница: {"code": 2002, "message": "Версия отключена или предоставляется неверная информация о приложении (идентификатор приложения или секретный ключ) "}
явно что-то не хватает, но я не знаю, как сделать соединение от точки а до точки В.
в учебнике также упоминает заголовки запроса. Хотя у меня есть вся информация, которую он запрашивает (идентификатор приложения, секретный ключ, тип приложения) в учебнике (ссылка выше), я не уверен, как включить их в свой код?
Если кто-то знает, что я делаю неправильно или могу помочь, я был бы очень признателен. Надеюсь, этого достаточно.
Эй, Марк, я очень близко, но я все еще не получаю приложение, чтобы удалить таблицу.Я добавил ваш код в свой класс ASyncTask выше и изменил URL-адрес, чтобы отразить ваш. Когда я запускаю приложение, я получаю следующую ошибку журнала в своем Logcat: java.io.FileNotFoundException: https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where=userEmailD%3D%27mark%40gmail. ком% 27. Я не уверен, что этого можно ожидать с помощью URL-адреса. Не могли бы вы взглянуть на код, выглядит ли синтаксис прямо сейчас? Что мне не хватает? Я очень ценю помощь. Спасибо. –
Кроме того, я продолжаю получать код ответа 404. Так что это общение с сервером, но ничего не найдено. Я предполагаю, что это имеет смысл, поскольку только один URL-адрес не ведет нигде в обычном браузере. Есть ли код, который мне не хватает? –
Метод запроса должен быть DELETE. Документация говорит об этом прямо там. В коде отсутствует urlConnection.setRequestMethod ("DELETE"); –