2016-07-27 12 views
1

私は、バックエンドレスサーバーに "LocalPhoneNum"というテーブルを持っています。それは3つのオブジェクトを含んでいます。名前、電話番号、電子メールが付いています。これら3つのオブジェクトはすべて同じ電子メールを持ちます。それはそれがどのように見えるかです。私が好きなhttps://backendless.com/documentation/data/rest/data_deleting_data_objects.htmAndroidスタジオ - バックエンドデータテーブルから一括データを削除する

:私はBackendlessのREST APIで見つかった「一括削除」オプションを使用して、私のAndroidアプリケーションからプログラムオブジェクトのすべての3つを削除する方法を把握する必要があり

enter image description here

私のFragmentのonCreateView()メソッドがインスタンス化されるとすぐに削除が実行されます。私のアプリケーションはとても簡単です。フラグメントが起動され、ASyncTaskクラスが呼び出され、データがバックグラウンドで削除されます。私の問題は、これらのタイプの呼び出しをサーバーに行う経験が多くなく、単にこれが機能する正しい構文がわからないことです。私はどこからでも検索してきましたが、きれいな答えを見つけることはできません。ここで

私がこれまで持っているものです。

  1. マイ断片クラスは、ここで見つけるBackendlessの指示に従ってオブジェクトを削除するために、適切なURLが含まれていAPI_URLと呼ばれるプライベート文字列が含まれています enter image description here

これは私の断片クラスは次のようになります。

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

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

} 

私の主な質問は、ここでは何を構文的に欠いていますか? {"code":2002、 "message": "バージョンが無効になっているか、間違ったアプリケーション情報(アプリケーションIDまたは秘密キーを提供しています) ) "}

明らかに何かが欠けているが、私はB点

に点Aからの接続を作成する方法がわからないチュートリアルでは、リクエストヘッダに言及しています。チュートリアル(上のリンク)のすべての情報(application-id、secret-key、app-type)を私は持っていますが、自分のコードにそれらを組み込む方法がわかりません。

誰かが私が間違っていることを知っていたり、助けてくれたら、私はそれを高く評価します。うまくいけば、それは十分な詳細です。あなたはHttpURLConnectionのオブジェクトに「のsetRequestProperty」メソッドを使用する必要が

答えて

2

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

また、URLにメールアドレスの値が(特に「どこで」引数に)単一引用符で囲む必要があり、 URLエンコードされている必要があります。これは、次のようになります。

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

この値をブラウザに入力すると、何も行われません。ブラウザはGETリクエスト(DELETEではなく)として送信し、必要なヘッダは送信されないためです。

+0

Hey Mark、私はスーパークローズですが、まだアプリケーションをテーブルを削除していません。上記の私のASyncTaskクラスであなたのコードを追加し、URLをあなたのものに反映させました。私がアプリケーションを実行すると、私はLogcatで次のログエラーが発生します。java.io.FileNotFoundException:https://api.backendless.com/v1/data/bulk/LocalPhoneNum?where=userEmailD%3D%27mark%40gmail com%27。それがURLで期待されるかどうかはわかりません。あなたはコードを見てください、構文は今見ていますか?私は何が欠けていますか?私は本当に助けに感謝します。ありがとうございました。 –

+0

また、私は404応答コードを得ています。したがって、サーバーと通信していますが、何も見つかりません。 URLだけでは通常のブラウザのどこにもつながっていないので、意味があると思います。私が紛失しているコードがありますか? –

+1

要求メソッドはDELETEでなければなりません。ドキュメントには、すぐそこに記載されています。あなたのコードにはurlConnection.setRequestMethod( "DELETE")がありません。 –

関連する問題