在照片参考和按键的帮助下,使用改装库在Body响应中获取照片

时间:2017-04-16 06:59:10

标签: android retrofit2 google-places google-nearby

 String photoReference = imageDataObject.getPhotoReference();
            String width = imageDataObject.getWidth();
            String height = imageDataObject.getHeight();
            ApiInterface apiServicePhoto = ApiClient.getClient(GlobalConstant.BASE_URL_PHOTO).create(ApiInterface.class);
            Call<ResponseBody> callPhoto = apiServicePhoto.getSinglePhoto(GlobalConstant.MAX_WIDTH_IMAGE, photoReference, GlobalConstant.API_KEY);
            callPhoto.enqueue(new Callback<ResponseBody>() {
                @Override
                public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                    Log.e(TAG, "onResponse: " + response);
                    if (response.isSuccessful()) {
                        if (response.body() != null) {
                            Log.e(TAG, "onResponse: ");
                        }
                        Log.e(TAG, "onResponse: " + response.body());
                    }
                }

                @Override
                public void onFailure(Call<ResponseBody> call, Throwable t) {
                    Log.e(TAG, "onFailure: ");
                }
            });

// API接口

  @GET("photo")
    Call<ResponseBody> getSinglePhoto(@Query("maxwidth") Integer maxwidth, @Query("photoreference") String photoreference, @Query("key") String key);

// API客户端

public class ApiClient {
    private static Retrofit retrofit = null;
    public static Retrofit getClient(String baseUrlRestro) {
        if (retrofit == null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseUrlRestro)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }

//基本网址

public static final String BASE_URL_PHOTO = "https://maps.googleapis.com/maps/api/place/";

我正在尝试此代码,但我无法获得任何响应正文。身体总是空的。有没有办法使用照片参考来获取照片。

提前感谢

1 个答案:

答案 0 :(得分:2)

因为Glide对我来说很好。我在这里为您发布代码。

ImageView ivPhoto = (ImageView) findViewById(R.id.ivPhoto);
String url = "https://maps.googleapis.com/maps/api/place/photo" +
    "?maxwidth=400" +
    "&photoreference=CnRtAAAATLZNl354RwP_9UKbQ_5Psy40texXePv4oAlgP4qNEkdIrkyse7rPXYGd9D_Uj1rVsQdWT4oRz4QrYAJNpFX7rzqqMlZw2h2E2y5IKMUZ7ouD_SlcHxYq1yL4KbKUv3qtWgTK0A6QbGh87GB3sscrHRIQiG2RrmU_jF4tENr9wGS_YxoUSSDrYjWmrNfeEHSGSc3FyhNLlBU" +
    "&key=AIzaSyAfDHQhe4fmz5FAitOnTjrOFPesb88GXFE";  

Glide.with(this)
    .load(url)
    .into(ivPhoto);