改造API接口调用错误

时间:2018-09-04 15:08:48

标签: java android retrofit

我一直在关注在线教程,并认真遵循以下代码作为API接口。我不断收到错误消息,例如非法的类型开头等等:

package com.gwiddle.airsoftcreations.airsoftapp;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

public interface ApiInterface {

    @GET("register.php")
    Call<User> performRegistration(@Query("name") String Name, 
        @Query("user_name") String UserName, @Query("user_password") String UserPassword );

    @GET("login.php")
    Call<User>perfromUserLogin@Query("user_name") String Username, 
        @Query("user_password") String UserPassword)
}

请协助

2 个答案:

答案 0 :(得分:0)

尝试更改此内容

@GET("login.php")
Call<User>perfromUserLogin@Query("user_name") String Username, 
    @Query("user_password") String UserPassword)

对此

@GET("login.php")
Call<User> perfromUserLogin(@Query("user_name") String Username, 
    @Query("user_password") String UserPassword);

答案 1 :(得分:0)

正如@Shadow Suave正确指出的那样,您为login编写的呼叫中存在错误。当前是:

@GET("login.php")
    Call<User>perfromUserLogin@Query("user_name") String Username, 
        @Query("user_password") String UserPassword)

您必须将该呼叫更改为:

 @GET("login.php")
        Call<User> perfromUserLogin(@Query("user_name") String Username, 
            @Query("user_password") String UserPassword);

我还认为这些方法应该registerlogin用户使用指定的服务,因此它们应该是POST方法,因为GET请求方法在这里没有任何意义,因此您应该也检查一下。另外,尽管您现在正在学习教程,但出于将来的目的,您应该知道您永远不应传递用户名和密码作为查询参数。因为查询参数可以显示在网络服务器日志历史记录中,所以可以获取更多信息see this