使用翻新Get方法的动态端点

时间:2018-10-11 01:28:57

标签: android get retrofit

这是我的请求网址: http://getpincodes.info/api.php?pincode=560054 密码值是动态的。

这是我的代码:

public interface PincodeDetailsService 

@GET("")
Call<PincodeDetailsResponse> getPin(@Url String url);

}

ApiUtils:

公共静态最终字符串PINCODE_URL =“ http://getpincodes.info/”;

   public static PincodeDetailsService getPincodeDetailsService() {
    return RetrofitClientInstance.getRetrofitInstance(PINCODE_URL).create(PincodeDetailsService.class);
}

在拨打网络电话时如何传递另一部分? 有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

签名应该是这样的:

@GET("api.php")
Call<PincodeDetailsResponse> getPin(@Query("pincode") int pincode);

然后只需使用

进行调用
getPin(560054);

答案 1 :(得分:1)

第一个响应标头Content-Typetext/html,将其更改为application/json。 如下创建改造实例

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://getpincodes.info")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

ApiService apiService = retrofit.create(ApiService.class);

创建这样的模型。

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Info {

@SerializedName("pincode")
@Expose
private String pincode;
@SerializedName("city")
@Expose
private String city;
@SerializedName("district")
@Expose
private String district;
@SerializedName("state")
@Expose
private String state;

public String getPincode() {
return pincode;
}

public void setPincode(String pincode) {
this.pincode = pincode;
}

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

public String getDistrict() {
return district;
}

public void setDistrict(String district) {
this.district = district;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

}

然后在api界面中添加以下代码

@GET("/api.php")
Call<List<Info>> getInfo(@Query("pincode") String pincode);

然后致电apiService.getInfo("560054")