我需要使用Retrofit库来解析URL中的数据并通过传递一些Parameters将数据发布到服务器。我尝试了一些链接,但我不明白这一点。任何人都可以解释如何使用改造吗?并建议与最新版本相关的任何最佳改造链接。
提前致谢。
答案 0 :(得分:4)
您好曾在本博客中查看此博客,并解释了与复古相关的所有内容https://futurestud.io/blog/retrofit-getting-started-and-android-client
答案 1 :(得分:2)
我正在开发一个原型应用程序,我测试了Retrofit。我将为您提供相关的代码和要求。
private void testRetrofit() throws IOException
{
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://jsonplaceholder.typicode.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
DemoEndpointInterface endpoint = retrofit.create(DemoEndpointInterface.class);
Call<DemoUser> call = endpoint.getUser("1");
DemoUser user = call.execute().body();
Log.d("$$$$ID : ", user.getId());
Log.d("$$$$User ID : ", user.getUserId());
Log.d("$$$$Title : ", user.getTitle());
Log.d("$$$$Body : ", user.getBody());
//Toast.makeText(this.getApplicationContext(), user.getTitle(), Toast.LENGTH_SHORT).show();
}
声明如下所述的接口:
public interface DemoEndpointInterface {
@GET("/posts/{userId}")
Call<DemoUser> getUser(@Path("userId") String userid); }
DemoUser.java如下:
public class DemoUser {
String userId;
String id;
String title;
String body;
public DemoUser(String userId, String id, String title, String body) {
this.userId = userId;
this.id = id;
this.title = title;
this.body = body;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
在app level gradle文件中声明依赖项:
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
希望这会有所帮助。让我们知道任何问题。
感谢。
答案 2 :(得分:0)
在我解决这个问题之前,这个改造并没有很好地支持新版本,所以改造19很酷。 我知道如何将json插入到类模型中。所以我会告诉你如何传递$ DepartmentID = $ _ GET [&#39; DepartmentID&#39;]
首先初始化它以使用api,folder1 / getDepartmentDetailsSingle.php?departmentID = departmentID
public interface RetrofitInternetApi {
@GET("/folder1/getDepartmentDetailsSingle.php")
void getDepartmentByID(@Query("departmentID") int departmentID, Callback<Response> callback);
}
然后功能
public void GetSINGLEDepartment(int departmentid){
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(
ROOT_URL).build();
//create an instance of the VehicleAPIService.
RetrofitInternetApi retrofitInternetApi = restAdapter
.create(RetrofitInternetApi.class);
retrofitInternetApi.getDepartmentByID(departmentid, new Callback<Response>() {
@Override
public void success(Response response, Response response2) {
BufferedReader reader = null;
//An string to store output from the server
String output = "";
try {
//Initializing buffered reader
reader = new BufferedReader(new InputStreamReader(response2.getBody().in()));
//Reading the output in the string
output = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("Success",output);
if(isJSONValid(output)==true){
//Saving to THE DATABASE
Log.d("FOUND JSON",output);
}else{
//data found is not Json
Log.d("NO JSON FOUND",output);
}
}
@Override
public void failure(RetrofitError error) {
Log.d("ERROR",error.getMessage());
}
});
后来随着我的发展,我将更新如何在拥有json的领域中使用它。