Retrofit 使用心得 @GET@POST带参数不带参数

private void initRetrofit() {
    OkHttpClient client = OkHttp3Utils.getOkHttpSingletonInstance();
    Log.i(TAG, "---->initRetrofit: " + client.toString());

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constant.URL_BASE)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    serverInterface = retrofit.create(MyServerInterface.class);
    call_qiushi = serverInterface.getInfoList(String.format(Constant.URL_LATEST, 1));
    //如果这里String.format(Constant.URL_LATEST, 1)的url是完整的url,则之前.baseUrl(Constant.URL_BASE)这里baseurl将失效
    call_qiushi.enqueue(new Callback<QiushiModel>() {
        @Override
        public void onResponse(Call<QiushiModel> call, Response<QiushiModel> response) {
            if (response.isSuccess() && response.body() != null) {
                progressBar_main.setVisibility(View.GONE);
                List<QiushiModel.ItemsEntity> list = response.body().getItems();
                // adapter执行刷新ListView
                adapter.reloadData(list, true);
            }
        }

        @Override
        public void onFailure(Call<QiushiModel> call, Throwable t) {
            progressBar_main.setVisibility(View.GONE);
            Toast.makeText(mContext, "网络异常,加载失败!", Toast.LENGTH_SHORT).show();
        }
    });
}

------@GET 
使用方式-------
------@POST 使用方式------
import java.util.Map;import okhttp3.MultipartBody;import okhttp3.RequestBody;import okhttp3.ResponseBody;import retrofit2.Call;import retrofit2.http.Body;import retrofit2.http.Field;import retrofit2.http.FieldMap;import retrofit2.http.FormUrlEncoded;import retrofit2.http.GET;import retrofit2.http.Headers;import retrofit2.http.Multipart;import retrofit2.http.POST;import retrofit2.http.Part;import retrofit2.http.Path;import retrofit2.http.Query;import retrofit2.http.QueryMap;import retrofit2.http.Streaming;import retrofit2.http.Url;/** * Created by steven on 16/3/29. */public interface MyServerInterface { /// // GET网络请求方式 /// /** * 作用:GET请求最简单的写法,无Path参数和Query参数 */ @GET("article/list/latest?page=1") Call<ResponseBody> getLatestString(); /** * 作用:GET请求,指定Path参数和Query参数 */ @GET("article/list/{type}?") Call<QiushiModel> getInfoList(@Path("type") String type, @Query("page") int page); /** * 作用:GET请求提交数据 * * @return */ @GET("MyWeb/RegServlet") Call<ResponseBody> getRegInfo(@QueryMap Map<String, String> map); /** * 作用:GET请求,指定URL参数 */ @GET Call<QiushiModel> getInfoList(@Url String urlString); /** * 作用:访问网络,获取网络返回数据 * * @return */ @GET("http://img.265g.com/userup/1201/201201071126534773.jpg") Call<ResponseBody> getNetworkData(); /** * 作用:访问网络,获取网络返回数据 * * @return */ @GET Call<ResponseBody> getNetworkData(@Url String urlString); /** * 作用:访问网络,下载大文件。 * 默认情况下,Retrofit在处理结果前会将服务器端的Response全部读进内存。 * 如果服务器端返回的是一个非常大的文件,则容易oom。 * * @return */ @Streaming @GET Call<ResponseBody> getNetworkDataAsync(@Url String urlString); /// // POST网络请求方式 /// /** * 作用:post网络请求,向服务器提交表单域数据 * @param username * @param password * @param age * @return */ @FormUrlEncoded @POST("MyWeb/RegServlet") Call<ResponseBody> postFormFields(@Field("username") String username, @Field("password") String password, @Field("age") String age); /** * 作用:post网络请求,向服务器提交表单域数据 * @return */ @FormUrlEncoded @POST("MyWeb/RegServlet") Call<ResponseBody> postFormFieldMap(@FieldMap Map<String , String> map); /** * 作用:POST网络请求,上传单个文件,上传后的文件名称已经被指定 * @param * @return */ @Multipart @POST("MyWeb/UploadServlet") Call<ResponseBody> postUploadFile(@Part("uploadfile\";filename=\"myuploadimg.png") RequestBody requestBody); /** * 作用:POST网络请求,上传多个文件,同时上传表单域数据 * @param * @return */ @POST("MyWeb/UPloadServlet") Call<ResponseBody> postUploadFilesMultipartBody(@Body MultipartBody multipartBody);}

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值