首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Retrofit向traccar API发出请求?

如何使用Retrofit向traccar API发出请求?
EN

Stack Overflow用户
提问于 2018-02-07 23:47:32
回答 1查看 692关注 0票数 2

我已经试过提出请求,但我做不到。

这是我正在使用的Retrofit界面。使用会话调用,我正在执行基本的HTTP身份验证。

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

@POST("/users")
@FormUrlEncoded
Call<Users> saveUserPost(@Header("Authorization") String credentials,
                         @Field("admin") Boolean admin,
                         @Field("email") String email,
                         @Field("name") String name,
                         @Field("password") String password);

@POST("/session")
Call<List<Session>> openSession(@Body Session session);

}

这是我的活动的onCreate方法,在其中,我尝试登录并验证用户是否已注册。

代码语言:javascript
复制
Retrofit.Builder builder = new Retrofit.Builder()
            .baseUrl("http://http://192.168.1.72:8082/api/")
            .addConverterFactory(GsonConverterFactory.create());

    Retrofit retrofit = builder.build();

    APIService apiService = retrofit.create(APIService.class);
    Session session = new Session();
    session.setPassword("admin");
    session.setEmail("admin");

    Call<List<Session>> call = apiService.openSession(session);

    call.enqueue(new Callback<List<Session>>() {
        @Override
        public void onResponse(Call<List<Session>> call, Response<List<Session>> response) {
            switch (response.code()) {
                case 200:
                    Toast.makeText(getApplicationContext(), "error = 200", Toast.LENGTH_LONG).show();
                    break;
                case 400:
                    Toast.makeText(getApplicationContext(), "error = 400", Toast.LENGTH_LONG).show();
                    break;
                case 401:
                    Toast.makeText(getApplicationContext(), "error = 401", Toast.LENGTH_LONG).show();
                    break;
                case 404:
                    Toast.makeText(getApplicationContext(), "error = 404", Toast.LENGTH_LONG).show();
                    break;
                case 405:
                    Toast.makeText(getApplicationContext(), "error = 405", Toast.LENGTH_LONG).show();
                    break;
                default:
                    Toast.makeText(getApplicationContext(), ""+response.isSuccessful(), Toast.LENGTH_LONG).show();
                    break;
            }
        }

        @Override
        public void onFailure(Call<List<Session>> call, Throwable t) {

        }
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 17:54:59

您可以查看Traccar Manager的本机版本以获取示例:

https://github.com/tananaev/traccar-manager-android/tree/native

它使用Retrofit。下面是界面:

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

    @FormUrlEncoded
    @POST("/api/session")
    Call<User> addSession(@Field("email") String email, @Field("password") String password);

    @GET("/api/devices")
    Call<List<Device>> getDevices();

    @GET("/api/commandtypes")
    Call<List<CommandType>> getCommandTypes(@Query("deviceId") long deviceId);

    @POST("/api/commands")
    Call<Command> sendCommand(@Body Command command);

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

https://stackoverflow.com/questions/48667886

复制
相关文章

相似问题

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