OkHttp를 활용한 GET, POST
03 Mar 2017 | Android 네트워크 Open SourceOkHttp는 HTTP 및 HTTP/2 통신을 보다 쉽게 할 수 있도록 다양한 기능을 제공해주는 Android 및 Java 용 라이브러리입니다. 오픈 소스로 되어 있으며 GitHub에서 소스 확인 및 다운로드할 수 있습니다.
Gradle 설정
build.gradle에 다음 라인을 추가해줍니다.
compile 'com.squareup.okhttp3:okhttp:3.6.0'
GET 예제
public boolean getUserInfo(final Context context) {
try {
OkHttpClient client = new OkHttpClient();
String url = SERVER_CONFIGURATION.ADDRESS + ":" +
SERVER_CONFIGURATION.PORT + "/v1/userinfo";
Request request = new Request.Builder()
.addHeader("Authorization", "TEST AUTH")
.url(url)
.build();
Response response = client.newCall(request)
.execute();
String result = response.body().string();
Gson gson = new Gson();
UserInfo info = gson.fromJson(result, UserInfo.class);
Log.i("id: " + info.id);
Log.i("name: " + info.name);
return true;
} catch(Exception e) {
e.printStackTrace();
}
return false;
}
POST 예제
private boolean updatetMetaInfo(JsonItemMetaInfo metaInfo) {
try {
OkHttpClient client = new OkHttpClient();
String url = SERVER_CONFIGURATION.ADDRESS + ":" +
SERVER_CONFIGURATION.PORT + "/v1/updateMetaInfo";
Gson gson = new Gson();
String json = gson.toJson(metaInfo);
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create(MediaType.parse("application/json"), json))
.build();
Response response = client.newCall(request).execute();
Log.i("request : " + request.toString());
Log.i("Response : " + response.toString());
return true;
} catch(Exception e) {
e.printStackTrace();
}
return false;
}
PUT 예제
public boolean registerAppToken(JsonToken token) {
try {
OkHttpClient client = new OkHttpClient();
String url = SERVER_CONFIGURATION.ADDRESS + ":" +
SERVER_CONFIGURATION.PORT + "/v1/registerAppToken";
Gson gson = new Gson();
String json = gson.toJson(token);
Request request = new Request.Builder()
.addHeader("key", "Content-Type")
.addHeader("value", "application/json")
.addHeader("description", "")
.url(url)
.put(RequestBody.create(MediaType.parse("application/json"), json))
.build();
Response response = client.newCall(request).execute();
Log.i("request : " + request.toString());
Log.i("Response : " + response.toString());
return true;
} catch(Exception e) {
e.printStackTrace();
}
return false;
}