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