我不知道我的问题出在哪里。我必须发布原始的 body

{"app_id":"abced","app_key":"abced","request":"login","username":"[email protected]","password":"1234"}

我正在使用改造 2.0。我创建了一个界面
    @FormUrlEncoded
@POST("index.php/")
Call<LoginResponse> getHome(@Field("app_id") String request,
                            @Field("app_key") String request1,
                            @Field("request") String request2,
                            @Field("username") String request3,
                            @Field("password") String request4);

并像这样调用:
 Retrofit retrofitget = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        MyAPI ApiData = retrofitget.create(MyAPI.class);
        Call<LoginResponse> GalleryGetSet = ApiData.getHome("abced","abced","login","[email protected]","1234");
        GalleryGetSet.enqueue(new Callback<LoginResponse>() {
            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
                Log.e(TAG, "data1" + response.body().getError());
            }

            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {
                Log.e(TAG, "Error2" + t.getMessage());
            }
        });

总是出现错误: 第 1 行第 1 列的输入结束
通过改造后发布原始 body 数据的过程是否正确,或者我错了。已经谷歌它但没有得到我的解决方案。
请任何人帮助我。

我也试过这种方式
接口(interface)中的
@FormUrlEncoded
@POST("index.php")
Call<LoginResponse> getHome1(@Field("login") String data);

并且在打电话时
 Retrofit retrofitget = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addConverterFactory(ScalarsConverterFactory.create())
                .build();
        MyAPI ApiData = retrofitget.create(MyAPI.class);

        Call<LoginResponse> listGalleryGetSet = ApiData.getHome("ABCD","ABCD","login","[email protected]","1234");
        listGalleryGetSet.enqueue(new Callback<LoginResponse>() {
            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
                Log.e(TAG, "data1" + response.body().getError());
            }

            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {
                Log.e(TAG, "Error" + t.getMessage());
            }
        });

我的 LoginResponse 类
public class LoginResponse {

private String error;

private Boolean vlink;

/**
 *
 * @return
 * The error
 */
public String getError() {
    return error;
}

/**
 *
 * @param error
 * The error
 */
public void setError(String error) {
    this.error = error;
}

/**
 *
 * @return
 * The vlink
 */
public Boolean getVlink() {
    return vlink;
}

/**
 *
 * @param vlink
 * The vlink
 */
public void setVlink(Boolean vlink) {
    this.vlink = vlink;
}

}

android - 改造 : Getting error ** End of input at line 1 column 1**-LMLPHP

依赖项
 compile 'com.squareup.retrofit2:retrofit-converters:2.0.0-beta3'
 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'

提前致谢

最佳答案

而不是使用

@POST("index.php")

请尝试使用
@POST("/index.php")

并作为
Call<LoginResponse> getHome(@Body YourBodyPojo pojo);

这肯定会帮助你。

关于android - 改造 : Getting error ** End of input at line 1 column 1**,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37303964/

10-11 20:45