Android SDKの使用例

SDKを使用してアプリケーションを実行する前に、いくつかのステップを実行する必要があります。

インターフェイスクラスの作成

APIコール用のインターフェースクラスの作成

Java classはInterfaceとして選択し、ファイル名をApiServiceとし、以下のコードを追加してください。詳細については、コード中にコメントを追加しています。

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;

public interface ApiService {

  @POST("/api/status")
  Call<Response> checkStatus(@Body String body);
}

 

レスポンスモデルの作成

リターンレスポンスのコンテナ用のレスポンスモデルの作成

Java classはレスポンスのcontainerとして選択し、ファイル名をResponseとします。そして以下のコードを追加してください。

public class Response {
  private String status;
    private String message;

  public Response(String status, String message) {
      super();
      this.status = status;
      this.message = message;
  }

  public String getStatus() {
      return status;
    }

  public String getMessage() {
      return message;
  }
}



MainActivityファイルの操作

MainActivityファイルの作成

以下のコードを追加してください。詳細については、コード中にコメントを追加しています。 

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.json.JSONException;
import org.json.JSONObject;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
import com.safous.waap.ApiProtection;
import com.safous.waap.ApiProtectionCallBack;

public class MainActivity extends AppCompatActivity {

@Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ApiProtection protection = new ApiProtection(getApplicationContext());

      //for example setupEnv
      protection.setupEnv(
          "d322-1234-4859-fex9-76djo8gg",
          "https://device.xxxx.xxxx.safous.com",
          "https://auth.xxxx.xxxx.safous.com",
          "https://device.xxxx.xxxx.safous.com",
          " /data/user/0/com.xxxxx/files/xxxxx.p12",
          "FTEXJnDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIBtk36xHzRZMCAggAMAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECDNAZ/FJYO+1BIIJSMixz2upnPpvx8ZeL28kOtC+PUexNfZPymiamx"
        );

        ApiProtectionCallBack < Object > callBack = new ApiProtectionCallBack < Object > () {

          @Override
          public void onSuccessReceived(Object response) {
              if (response instanceof OkHttpClient) {
                  OkHttpClient client = (OkHttpClient) response;
                  Gson gson = new GsonBuilder()
                      .setLenient()
                        .create();

                  Retrofit retrofit = new Retrofit.Builder()
                      // base url server
                      .baseUrl("https://example.com/")
                      // client containing header cookie and User-Agent
                      .client(client)
                      // this is for handling response, convert string to object
                      .addConverterFactory(ScalarsConverterFactory.create())
                      // as we are sending data in json format so
                      // we have to add Gson converter factory
                      .addConverterFactory(GsonConverterFactory.create(gson))
                        .build();

                  // below line is to create an instance for our retrofit api class.
                  ApiService apiService = retrofit.create(ApiService.class);

                  // passing data from our text fields to our modal class.
                    JSONObject paramObject = new JSONObject();

                  try {
                      paramObject.put("id", "1");
                  } catch (JSONException e) {
                      e.printStackTrace();
                  }

                  // calling a method to create a post and passing our modal class.
                    Call < Response > call = apiService.checkStatus(paramObject.toString());

                  // on below line we are executing our method.
                    call.enqueue(new Callback < Response > () {

                      @Override
                      public void onResponse(Call < Response > call, retrofit2.Response < Response > response) {
                          // this method is called when we get response from our api.
                        }

                      @Override
                      public void onFailure(Call < Response > call, Throwable t) {
                          // this method is called when we can't hit or can't get response from our api.
                      }
                  });
              }
            }

          @Override
            public void onErrorReceived(com.safous.waap.utilities.Error errorResponse) {

          }
        };

      protection.transaction(callBack);
  }
}