彻底搜索了这个特定的问题但是在我遇到的每个问题下实现答案时,我仍然得到相同的输出:
End of input at line 1 column 1 path $
我在PostMan上执行了我的请求,我得到了预期的输出: Here is the Screenshot of the Postman Request
接口
@POST(Constant.API_REQUEST)
Observable<ServerResponse> postToWinnersList(@Body ServerRequest serverRequest);
ApiClient
public class ApiClient {
public static Retrofit retrofit;
private static OkHttpClient.Builder okHttpClientBuilder;
private static HttpLoggingInterceptor loggingInterceptor;
public static Retrofit getApiClient(){
if (retrofit == null){
// create instance of Httpclient
okHttpClientBuilder = new OkHttpClient.Builder();
loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
if(BuildConfig.DEBUG){
okHttpClientBuilder.addInterceptor(loggingInterceptor);
}
// instance of retrofit
retrofit = new Retrofit.Builder().baseUrl(Constant.BASE_URL).
addCallAdapterFactory(RxJava2CallAdapterFactory.create()).
addConverterFactory(GsonConverterFactory.create())
.client(okHttpClientBuilder.build())
.build();
}
return retrofit;
}
}
Retrofit / RxJava请求代码:
Observable<ServerResponse> response = apiInterface.postToWinnersList(serverRequest);
response.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribeWith(new DisposableObserver<ServerResponse>() {
@Override
public void onNext(ServerResponse serverResponse) {
AVLoadingIndicatorView1.setVisibility(View.GONE);
txtSubmitWinner.setVisibility(View.VISIBLE);
}
@Override
public void onError(Throwable e) {
AVLoadingIndicatorView1.setVisibility(View.GONE);
txtSubmitWinner.setVisibility(View.VISIBLE);
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onComplete() {
showShortMsg(getString(R.string.submit_success));
}
});
请提前帮助,谢谢。
答案 0 :(得分:0)
不确定,但我认为在Constant.API_REQUEST中你没有附加“/”。让我知道它是否正确。
离。@POST("index.php") // wrong
@POST("/index.php") //correct way
答案 1 :(得分:0)
当您的json
响应出现问题时,您才会收到该错误,请再次检查以确保错误响应和正确的响应格式正确。
使用邮递员输入错误的凭据,看看输出是什么样的。
答案 2 :(得分:0)
当您期望响应中有一个对象时,您会收到此错误,但API除了结果代码(200,...)以外,不会返回任何其他内容。选项:
-检查API是否确实返回了ServerResponse
。
-如果您真的不需要它返回任何内容,请使用Observable<Response<Void>>
代替Observable<ServerResponse>
答案 3 :(得分:0)
答案无效时,会发生此错误。 要更正此错误,请确保在请求的返回中没有任何内容。
例如。 界面白色Kotlin
@POST("endPoint/")
fun relatarProblema(@Body serverRequest: ServerRequest ): Call<Void>
不要忘记在api调用中覆盖返回类型。
科特林白色的例子
call.enqueue (object: Callback <Void> {
override fun onResponse(call: Call<Void>, response: Response<Void>) {
}
override fun onFailure(call: Call<Void>, t: Throwable) {
}
})
答案 4 :(得分:0)
当我使用协程时,帮助的是基本上不从该方法返回任何内容:
@GET
@Headers("X-Requested-With:XMLHttpRequest")
suspend fun methodCall(
@Url url: String
)