Retrofit 기본 사용 방법
공식 문서:http://square.github.io/retrofit/
인터페이스 문서:http://www.sojson.com/api/weather.html
사용 하 는 인터페이스:http://www.sojson.com/open/api/weather/json.shtml?city=심 천
1.Retrofit 대상 새로 만 들 기
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.sojson.com/")
.build();
baseUrl 도 메 인 이름 부분 에 만 채 워 졌 습 니 다."/"로 끝내 야 합 니 다.2.새 인터페이스 만 들 기
public interface RequestService {
@GET("open/api/weather/json.shtml")
Call getWeather(@Query("city") String cityName);
}
GET 요청 방식,Retrofit 지원 을 사용 합 니 다.GET
,
POST
,
PUT
,
DELETE
하고
HEAD
"open/api/weather/json.shtml"링크 경로 입 니 다.
@Query("city")는 주석 을 통 해 city 요청 인 자 를 추가 합 니 다.
3.새 인터페이스 에이전트 대상
RequestService requestSerives = retrofit.create(RequestService.class);
4.Call 대상 을 통 해 요청 대기 열 에 요청 삽입
Call call = requestSerives.getWeather(" ");//
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
try {
Log.d("MainActivity","return:" + response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call call, Throwable throwable) {
Log.d("MainActivity","error");
}
});
5.url 의 전 참 방식
(1)@Path 전송 경로 의 인자
//
@GET("open/api/{action}/json.shtml")
Call getStringByAction(@Path("action") String action, @Query("city") String cityName);
이 경로 에{action}을 추가 하 였 습 니 다.("{}"을 사용 해 야 합 니 다.)전달 하 는 매개 변수 에@Path("action")를 추가 하 였 습 니 다.매개 변수 이름 action 이 일치 해 야 합 니 다.이 를 통 해 요청 주소 의 경 로 를 동적 으로 수정 합 니 다.
Call call2 = requestSerives.getStringByAction("weather", " ");
call2.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Log.d("MainActivity","return2:" + response.body().toString());
Log.d("MainActivity", "Thread Name :" + Thread.currentThread().getName());
}
@Override
public void onFailure(Call call, Throwable throwable) {
Log.d("MainActivity","error");
}
});
(2)@Query 전달 매개 변수
이 앞 에 이미 예 가 있 습 니 다.여러 개의 파 라 메 터 를 전달 해 야 한다 면@Query Map 이 있 습 니 다.
@GET("open/api/weather/json.shtml")
Call getWeather(@QueryMap Map params);
@Query @Query Map 은 url 뒤의 인 자 를 직접 불 러 오기 때문에 GET 요청 방식 에 적합 합 니 다.
POST 요청 이 라면 요청 헤더 에 인자 가 있 으 면@Field 를 사용 해 야 합 니 다. @FieldMap
(3)@바디 전달 대상
@POST("users/new")
Call createUser(@Body User user)
POST 요청 에 사용 하면 전체 대상 이 요청 체 로 전 환 됩 니 다.
(4)@Part
@Multipart 와 함께 사용 해 야 합 니 다.폼 데이터 업로드 와 유사 합 니 다.그리고@PartMap
6.가입 요청 헤더
@Headers({
"Accept: application/vnd.github.v3.full+json",
"User-Agent: Retrofit-Sample-App"
})
@GET("users/{username}")
Call getUser(@Path("username") String username);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.