Дооснащение 2: конец ввода в строке 1 путь столбца 1 $ - PullRequest
0 голосов
/ 08 мая 2018

Я провел тщательный поиск этой конкретной проблемы, но при реализации ответов на каждый вопрос, с которым я столкнулся, все равно получаю тот же результат:

 End of input at line 1 column 1 path $ 

Я выполнил свой запрос на PostMan и получил ожидаемый результат: Вот скриншот запроса почтальона

Интерфейсы

 @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;
    }
}

Модификация / Код запроса 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));
                            }
                        });

Пожалуйста, помогите, спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Эта ошибка появляется только тогда, когда что-то не так с вашим ответом json. Проверьте еще раз, чтобы убедиться, что и ответ об ошибке, и правильный ответ правильно отформатированы.

Введите неверные учетные данные, используя почтальон, и посмотрите, как выглядит вывод.

0 голосов
/ 01 апреля 2019

Вы можете получить эту ошибку, когда ожидаете объект в ответе, но API не возвращает ничего, кроме кодов результата (200, ...).Опции: - Убедитесь, что API действительно возвращает ServerResponse.- Если вам не нужно ничего возвращать, используйте Observable<Response<Void>> вместо Observable<ServerResponse>

0 голосов
/ 08 мая 2018

Не уверен, но я думаю, что в Constant.API_REQUEST вы не добавляете "/". Дайте мне знать, если это правильно.

ех. @POST("index.php") // wrong

@POST("/index.php") //correct way
...