Android Studio - 从后端数据中删除批量数据 Table

Android Studio - Deleting Bulk Data From Backendless Data Table

我在 Backendless Server 中有一个名为 "LocalPhoneNum" 的 table。它包含三个objects。每个都有姓名、phone 号码和电子邮件。所有这三个 objects 都有相同的电子邮件。这是它的样子。

我需要弄清楚如何使用 Backendless REST API 中的 "Bulk Delete" 选项以编程方式从我的 Android 应用程序中删除所有三个 objects: https://backendless.com/documentation/data/rest/data_deleting_data_objects.htm

我希望在 Fragment 的 onCreateView() 方法实例化后立即进行删除。我的申请非常简单。启动一个 Fragment,调用一个 ASyncTask Class,并在后台删除数据。我的问题是我没有太多对服务器进行这些类型的调用的经验,而且根本不知道正确的语法才能起作用。我一直在到处搜索,但找不到明确的答案。

这是我目前的情况:

  1. 我的片段 class 包含一个名为 API_URL 的私有字符串,其中包含适当的 URL 以根据此处找到的 Backendless 说明删除 objects:

这就是我的片段 Class 的样子:

public class ContactsFragments extends Fragment {
private View view;
private final String API_URL = "https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where%3DuserEmailID%3Dmark@gmail.com";

@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;
}}

这是被调用来完成工作的 ASyncTask() Class:

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%3Dmark@gmail.com) 复制并粘贴到浏览器中时,页面显示: {"code":2002,"message":"Version is disabled or provided wrong application info (application id or secret key)"}

显然缺少某些东西,但我不知道如何建立从 A 点到 B 点的连接。

本教程还提到了请求 Headers。虽然我在教程(Link 以上)中拥有它要求的所有信息(application-id、secret-key、app-type),但我不确定如何合并它们在我的代码中?

如果有人知道我做错了什么或者可以帮助我,我将不胜感激。希望这些足够详细了。

您需要在 HttpURL连接上使用 "setRequestProperty" 方法 object:

urlConnection.setRequestProperty( "application-id", "VALUE" );
urlConnection.setRequestProperty( "secret-key", "VALUE" );

此外,URL 中的电子邮件地址值(特别是在 "where" 参数中)必须用单引号括起来,也必须是 URL 编码。这就是它的样子:

https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where=userEmailD%3D%27mark%40gmail.com%27

将该值输入浏览器将不会执行任何操作。由于浏览器会将其作为 GET 请求(而不是 DELETE)发送,并且发送了所需 headers 中的 none。