서버
피싱사이트 탐지 어플 개발일지 2 서버와의 통신-2
오이맛사과
2023. 9. 2. 19:19
이번에는 서버와 직접 통신을 시도해 보겠다.
서버쪽 코드는 추후에 올릴 예정이다.
public interface API {
@POST("link/post")
Call<ResponseBody> getLinkResponse(@Body Link link);
}
다음과 같이 interface를 정의했다.
Call<ResponseBody> call = RetrofitBuilder.getApi().getLinkResponse(link);
call.enqueue(new Callback<ResponseBody>()
{
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response)
{
findViewById(R.id.cpb).setVisibility(View.INVISIBLE);
if (response.isSuccessful()) {
try {
String scan_result=response.body().string();
// result_box = findViewById(R.id.Scan_result);
Log.d("RESPONSE","통신 성공");
Intent intent = new Intent(Link_Insert.this, Inspection_results.class);
intent.putExtra("scan_result",scan_result);
intent.putExtra("input_link_insert",scan_link);
intent.putExtra("link_insert_recognize","link_insert");
startActivity(intent);
} catch (IOException e) {
Log.d("RESPONSE", "Failed to read response data");}
} else {
Log.d("RESULT", response.message());
Log.d("RESPONSE", "FAILURE");}}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.d("CONNECTION FAILURE: ", t.getLocalizedMessage());
}
});
}
Call<ResponseBody> call = RetrofitBuilder.getApi().getLinkResponse(link);
해당 코드를 이용해 getLinkResponse 메서드를 호출하고 서버로 HTTP POST요청을 보낸다
call.enqueue(new Callback<ResponseBody>()
해당 코드로 비동기적으로 HTTP요청을 싱행하고 응답을 처리하기 위한 콜백을 등록한다.
이후의 코드에서 서버로부터 응답을 받았다면
String scan_result=response.body().string();
// result_box = findViewById(R.id.Scan_result);
Intent intent = new Intent(Link_Insert.this, Inspection_results.class);
intent.putExtra("scan_result",scan_result);
intent.putExtra("input_link_insert",scan_link);
intent.putExtra("link_insert_recognize","link_insert");
startActivity(intent);
putExtra를 이용해 key값과 value값을 담아주고 결과 액티비티로 전달한다.
Logcat에서 "D/RESPONSE: 통신 성공" 이라는 로그가 출력됐다면 성공