首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Retrofit :从Retrofit 1.9迁移到Retrofit 2.0的步骤

Android Retrofit :从Retrofit 1.9迁移到Retrofit 2.0的步骤
EN

Stack Overflow用户
提问于 2016-11-10 13:11:47
回答 2查看 1.2K关注 0票数 1

我目前使用的是retrofit 1.9,我在使用它时遇到了很多问题,比如我遇到了翻新、管道破裂错误和许多问题,所以基本上现在我计划从1.9迁移到2.0,但我在尝试不同的步骤来克服它时感到困惑和完全停滞不前。如果你们能帮助我克服这个问题,我将非常感谢你们。我有我的post和get请求的改进1.9代码如下。请帮助我完成更改代码的步骤

1>这里是我当前正在使用的唯一1个改装依赖项编译‘com.squareup.reverfit: retrofit :1.9.0’,那么我该如何更改依赖项呢?

用于post和get的2>My改造接口

代码语言:javascript
复制
 @POST("/trinkingu/operations.php")
    void createNewSeekerProfile( @Query("module") String module,
                                 @Query("action") String action,
            @Body SeekerProfileModel body, Callback<Response> callback);


@GET("/synkku/services.php")
void getAlljobPosts(@Query("module") String module,
                    @Query("action") String action,
                    @Query("key") String key,
                    @Query("value") String value, Callback<ArrayList<JobsModel>> response);

3>My Retrofit Helper类

代码语言:javascript
复制
public void addNewSeekerProfile(String module,String action,SeekerProfileModel seekerProfileModel) {
    //Here we will handle the http request to insert user to mysql db
    //Creating a RestAdapter
    System.out.println("##coming here");
    RestAdapter adapter = new RestAdapter.Builder()
            .setEndpoint(Allconstants.MAIN_URL) //Setting the Root URL
            .build(); //Finally building the adapter
    //Creating object for our interface
    RetroApiInterface api = adapter.create(RetroApiInterface.class);

    //Defining the method insertuser of our interface
    api.createNewSeekerProfile(
            module,
            action,
            seekerProfileModel,
            new Callback<Response>() {
                @Override
                public void success(Response response, Response response2) {
                    TypedInput body = response.getBody();
                    try {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(body.in()));
                        StringBuilder out = new StringBuilder();
                        String newLine = System.getProperty("line.separator");
                        String line;
                        while ((line = reader.readLine()) != null) {
                            out.append(line);
                            out.append(newLine);
                        }

                        // Prints the correct String representation of body.
                        System.out.println(out);
                        Toast.makeText(mContext,"result"+out,Toast.LENGTH_SHORT).show();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                @Override
                public void failure(RetrofitError error) {
                    Toast.makeText(mContext,"error"+error.toString(),Toast.LENGTH_LONG).show();
                    error.printStackTrace();
                }
            }
    );
}

下面是get

代码语言:javascript
复制
public void getAllMyPostedJobs(String inputKey, String inputValue) {
        //While the app fetched data we are displaying a progress dialog
        //Creating a rest adapter
        RestAdapter adapter = new RestAdapter.Builder()
                .setEndpoint(Allconstants.MAIN_URL)
                .build();

        //Creating an object of our api interface
        RetroApiInterface api = adapter.create(RetroApiInterface.class);

        api.getAlljobPosts(Allconstants.JOBS, Allconstants.ACTION_GET_ALL_MY_POSTEDJOBS, inputKey, inputValue, new Callback<ArrayList<JobsModel>>() {
            @Override
            public void success(ArrayList<JobsModel> jobsModels, Response response) {
                if (mResultCallback != null)
                    mResultCallback.notifySuccess(jobsModels, response);
                System.out.println("###successfull ");
            }

            @Override
            public void failure(RetrofitError error) {
                if (mResultCallback != null)
                    mResultCallback.notifyError(error);
            }
        });
    }

为了迁移到2.0,现在请帮助我进行更改,您的帮助将非常感谢,提前感谢:)

EN

回答 2

Stack Overflow用户

发布于 2016-11-10 14:03:21

编译:

代码语言:javascript
复制
compile 'com.squareup.retrofit2:retrofit:2.1.0'

创建接口:

代码语言:javascript
复制
public interface ItemAPI {

@GET("/synkku/services.php")
call<JobsModel>  getAlljobPosts(@Query("module") String module,
                    @Query("action") String action,
                    @Query("key") String key,
                    @Query("value") String value);

                    }

创建类:

代码语言:javascript
复制
public class Apiclient {
    public static final String BASE_URL = "YOUR BASE_URL";
    private static Retrofit retrofit = null;


    public static Retrofit getClient() {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }

现在,在你的练习中:

代码语言:javascript
复制
ItemAPI itemAPI = Apiclient.getClient().create(ItemAPI.class);
Call<JobsModel> call=itemAPI.getAlljobPosts(Allconstants.JOBS, Allconstants.ACTION_GET_ALL_MY_POSTEDJOBS, inputKey, inputValue);

call.enqueue(new Callback<JobsModel>() {
    @Override
    public void onResponse(Call<JobsModel> call, Response<JobsModel> response) {
        try {
            HERE YOU CAN GET JoBSModel VIA RESPONSE.BODY."your model method name"
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public void onFailedAfterRetry(Throwable t) {

    }
});
票数 0
EN

Stack Overflow用户

发布于 2016-11-10 17:20:36

公共类JobsModel实现了可序列化的{

代码语言:javascript
复制
@SerializedName("_id")
private String _id = null;
@SerializedName("posted_by")
private String userId = null;
@SerializedName("company_name")
private String companyName = null;
@SerializedName("position")
private String position = null;
@SerializedName("eligiblity")
private String eligiblity = null;
@SerializedName("experience")
private String experience = null;
@SerializedName("interview_from_date")
private String interviewFromDate = null;
@SerializedName("interview_to_date")
private String interviewToDate = null;
@SerializedName("interview_frm_timing")
private String interviewTimeFrom = null;
@SerializedName("interview_to_timing")
private String interviewTimeTo = null;
@SerializedName("describtion")
private String desc = null;
@SerializedName("skills")
private String skills = null;
@SerializedName("interview_location")
private String interviewLocation = null;
@SerializedName("interview_lat")
private float lat;
@SerializedName("interview_lon")
private float lon;
@SerializedName("contact_person")
private String contactPerson = null;
@SerializedName("contact_phone")
private String contactPhone = null;
@SerializedName("contact_email")
private String contactMail = null;
@SerializedName("total_vocancies")
private int totalVocancies;
@SerializedName("posted_on")
private String postedOn;
@SerializedName("currently_active")
private String currently_active;
@SerializedName("sal_pckg")
private String salPckg;

public JobsModel(String _id, String userId, String companyName, String position, String eligiblity,
                 String experience, String interviewFromDate, String interviewToDate, String interviewTimeFrom, String interviewTimeTo,
                 String desc, String skills, String interviewLocation,
                 String contactPerson, String contactPhone, String contactMail, int totalVocancies, String postedOn, String isActive,String salPckg) {
    this._id=_id;
    this.userId = userId;
    this.companyName = companyName;
    this.position = position;
    this.eligiblity = eligiblity;
    this.experience = experience;
    this.interviewFromDate = interviewFromDate;
    this.interviewToDate = interviewToDate;
    this.interviewTimeFrom = interviewTimeFrom;
    this.interviewTimeTo = interviewTimeTo;
    this.desc = desc;
    this.skills = skills;
    this.interviewLocation = interviewLocation;
    this.contactPerson = contactPerson;
    this.contactPhone = contactPhone;
    this.contactMail = contactMail;
    this.totalVocancies = totalVocancies;
    this.postedOn=postedOn;
    this.currently_active =isActive;
    this.salPckg=salPckg;
}

public String getSalPckg() {
    return salPckg;
}

public void setSalPckg(String salPckg) {
    this.salPckg = salPckg;
}

public String get_id() {
    return _id;
}

public void set_id(String _id) {
    this._id = _id;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}

public String getCompanyName() {
    return companyName;
}

public void setCompanyName(String companyName) {
    this.companyName = companyName;
}

public String getPosition() {
    return position;
}

public void setPosition(String position) {
    this.position = position;
}

public String getEligiblity() {
    return eligiblity;
}

public void setEligiblity(String eligiblity) {
    this.eligiblity = eligiblity;
}

public String getExperience() {
    return experience;
}

public void setExperience(String experience) {
    this.experience = experience;
}

public String getInterviewFromDate() {
    return interviewFromDate;
}

public void setInterviewFromDate(String interviewFromDate) {
    this.interviewFromDate = interviewFromDate;
}

public String getInterviewToDate() {
    return interviewToDate;
}

public void setInterviewToDate(String interviewToDate) {
    this.interviewToDate = interviewToDate;
}

public String getInterviewTimeFrom() {
    return interviewTimeFrom;
}

public void setInterviewTimeFrom(String interviewTimeFrom) {
    this.interviewTimeFrom = interviewTimeFrom;
}

public String getInterviewTimeTo() {
    return interviewTimeTo;
}

public void setInterviewTimeTo(String interviewTimeTo) {
    this.interviewTimeTo = interviewTimeTo;
}

public String getDesc() {
    return desc;
}

public void setDesc(String desc) {
    this.desc = desc;
}

public String getSkills() {
    return skills;
}

public void setSkills(String skills) {
    this.skills = skills;
}

public String getInterviewLocation() {
    return interviewLocation;
}

public void setInterviewLocation(String interviewLocation) {
    this.interviewLocation = interviewLocation;
}

public float getLat() {
    return lat;
}

public void setLat(float lat) {
    this.lat = lat;
}

public float getLon() {
    return lon;
}

public void setLon(float lon) {
    this.lon = lon;
}

public String getContactPerson() {
    return contactPerson;
}

public void setContactPerson(String contactPerson) {
    this.contactPerson = contactPerson;
}

public String getContactPhone() {
    return contactPhone;
}

public void setContactPhone(String contactPhone) {
    this.contactPhone = contactPhone;
}

public String getContactMail() {
    return contactMail;
}

public void setContactMail(String contactMail) {
    this.contactMail = contactMail;
}

public int getTotalVocancies() {
    return totalVocancies;
}

public void setTotalVocancies(int totalVocancies) {
    this.totalVocancies = totalVocancies;
}

public String getPostedOn() {
    return postedOn;
}

public void setPostedOn(String postedOn) {
    this.postedOn = postedOn;
}

public String getCurrently_active() {
    return currently_active;
}

public void setCurrently_active(String currently_active) {
    this.currently_active = currently_active;
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40520356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档