package com.oo.seex.netlibrary.net.Api;

import java.util.Map;

import okhttp3.ResponseBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.HeaderMap;
import retrofit2.http.POST;
import retrofit2.http.Url;
import rx.Observable;

/**
 * 通用的rxjava  retrofit
 */

public interface ApiRxService {

	@GET
	<T> Observable<T> executeGet(@Url String url);
	@GET
	<T> Observable<T> executeGet(@Url String url, @HeaderMap Map<String, String> headers);
	/**
	 * POST方式将以表单的方式传递键值对作为请求体发送到服务器
	 * 其中@FormUrlEncoded 以表单的方式传递键值对
	 * 其中 @Path：所有在网址中的参数（URL的问号前面）
	 * 另外@FieldMap 用于POST请求，提交多个表单数据，@Field：用于POST请求，提交单个数据
	 * 使用@url是为了防止URL被转义为https://10.33.31.200:8890/msp%2Fmobile%2Flogin%3
	 */
	@FormUrlEncoded
	@POST
	Observable<ResponseBody> executePost(@Url String url, @FieldMap Map<String, String> map);
	@FormUrlEncoded
	@POST
	Observable<ResponseBody> executePost(@Url String url, @HeaderMap Map<String, String> headers, @FieldMap Map<String, String> map);

}
