7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

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

Есть логика, которая локально работает, делает post запрос на внешний API и получает ответ как надо 200.


Но в задеплоенная онлайн это логика не работает и я в ответ на этот запрос получаю html форму с 403 Forbidden. Абсолютно 0 идей почему так.

Думал проблема с апи ключами, но нет.

Что это вообще может быть, что локально работает, а в сети нет?

Dzen4

Пользователь

Регистрация: 03.07.2015

Сообщения: 800

Рейтинг: 167

Dzen4

Регистрация: 03.07.2015

Сообщения: 800

Рейтинг: 167

img

Проблема с доступом (правами доступа) к странице/ресурсу/юрл апи.

Настройки веб сервера локально и на сервере как то отличаются?

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

Dzen4 сказал(а):

Проблема с доступом (правами доступа) к странице/ресурсу/юрл апи.

Настройки веб сервера локально и на сервере как то отличаются?

Нажмите, чтобы раскрыть...

В данном случае нет, конфиги в приложении никакие не юзаются для этого .

я понимаю что значит 403) но без понятия какая причина

errorstalker

Пользователь

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

errorstalker

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

img
Dzen4 сказал(а):

Проблема с доступом (правами доступа) к странице/ресурсу/юрл апи.

Настройки веб сервера локально и на сервере как то отличаются?

Нажмите, чтобы раскрыть...

Ну так он же делает запрос на внешний API, то есть это не его сервак.

HealSlut

Пользователь

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

HealSlut

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

img
7even7een сказал(а):

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

Есть логика, которая локально работает, делает post запрос на внешний API и получает ответ как надо 200.


Но в задеплоенная онлайн это логика не работает и я в ответ на этот запрос получаю html форму с 403 Forbidden. Абсолютно 0 идей почему так.

Думал проблема с апи ключами, но нет.

Что это вообще может быть, что локально работает, а в сети нет?

Нажмите, чтобы раскрыть...

Да что угодно вплоть до того, что они тебя по IP банят при запросе с сервера. Но все же вероятнее всего, что накосячил с ключами. Нужно доки АПИ смотреть, проверять какие запросы с сервера уходят, или в тех. поддержку писать. Просто по такому описанию трудно сказать что именно пошло не так.

Dzen4

Пользователь

Регистрация: 03.07.2015

Сообщения: 800

Рейтинг: 167

Dzen4

Регистрация: 03.07.2015

Сообщения: 800

Рейтинг: 167

img

Апи требует какую то инфу о сессии/авторизации?

Хедеры и само содержание запросов как то отличаются?

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

HealSlut сказал(а):

Да что угодно вплоть до того, что они тебя по IP банят при запросе с сервера. Но все же вероятнее всего, что накосячил с ключами. Нужно доки АПИ смотреть, проверять какие запросы с сервера уходят, или в тех. поддержку писать. Просто по такому описанию трудно сказать что именно пошло не так.

Нажмите, чтобы раскрыть...

Так я это все залогал, запрос джосоном делаю и получаю 403


Dzen4 сказал(а):

Апи требует какую то инфу о сессии/авторизации?

Хедеры и само содержание запросов как то отличаются?

Нажмите, чтобы раскрыть...

Да, там api key в хедере лежит


HealSlut сказал(а):

Да что угодно вплоть до того, что они тебя по IP банят при запросе с сервера. Но все же вероятнее всего, что накосячил с ключами. Нужно доки АПИ смотреть, проверять какие запросы с сервера уходят, или в тех. поддержку писать. Просто по такому описанию трудно сказать что именно пошло не так.

Нажмите, чтобы раскрыть...

Выше ответил

HealSlut

Пользователь

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

HealSlut

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

img
7even7een сказал(а):

получаю 403

Нажмите, чтобы раскрыть...

В теле ответа пояснение не приходит? Ключи точно верные? М.б. где-то символ потерял или что-то такое...

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

HealSlut сказал(а):

В теле ответа пояснение не приходит? Ключи точно верные? М.б. где-то символ потерял или что-то такое...

Нажмите, чтобы раскрыть...

да не бред чел) я целый день разбирался, сомневаюсь что я настолько слепой и не достаточно перепроверил)

в ответе что-то типа:

...403 Forbidden

Из-за чего падает на парсинге, так как ожидается json

HealSlut

Пользователь

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

HealSlut

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

img
7even7een сказал(а):

в ответе что-то типа:

...403 Forbidden

Нажмите, чтобы раскрыть...

Что-то типа или только это? Это же статус код. Обычно АПИ при ошибке пишет в теле пояснение в чем проблема в виде текста. Может, ты только статус-код при ошибке выводишь, а тело нет?

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

HealSlut сказал(а):

Что-то типа или только это? Это же статус код. Обычно АПИ при ошибке пишет в теле пояснение в чем проблема в виде текста. Может, ты только статус-код при ошибке выводишь, а тело нет?

Нажмите, чтобы раскрыть...

Я тело вывожу, оно выводится в виде html.

То-есть на джаве response.getResponseBody()

errorstalker

Пользователь

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

errorstalker

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

img
7even7een сказал(а):

Я тело вывожу, оно выводится в виде html.

То-есть на джаве response.getResponseBody()

Нажмите, чтобы раскрыть...

В чем сложность под ВПН постучаться к апи через браузер, и сразу увидеть результат, сравнить без ВПН ?

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

errorstalker сказал(а):

В чем сложность под ВПН постучаться к апи через браузер, и сразу увидеть результат, сравнить без ВПН ?

Нажмите, чтобы раскрыть...

шта?PepeCringe.png?1598477741

HealSlut

Пользователь

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

HealSlut

Регистрация: 25.08.2018

Сообщения: 2536

Рейтинг: 7939

img
7even7een сказал(а):

Я тело вывожу, оно выводится в виде html.

То-есть на джаве response.getResponseBody()

Нажмите, чтобы раскрыть...

И там нет никакой инфы? Ну тогда хз, недостаточно информации. Читай доки или пиши в тех. поддерку апи.

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

AtagaN

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

7even7een сказал(а):

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

Есть логика, которая локально работает, делает post запрос на внешний API и получает ответ как надо 200.


Но в задеплоенная онлайн это логика не работает и я в ответ на этот запрос получаю html форму с 403 Forbidden. Абсолютно 0 идей почему так.

Думал проблема с апи ключами, но нет.

Что это вообще может быть, что локально работает, а в сети нет?

Нажмите, чтобы раскрыть...

Какой тип авторизации у тебя? Базовая или токен? Может по сертификату?

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

AtagaN сказал(а):

Какой тип авторизации у тебя? Базовая или токен? Может по сертификату?

Нажмите, чтобы раскрыть...

Basic Auth получается.


Authorization: Basic Base64(apikey)


HealSlut сказал(а):

И там нет никакой инфы? Ну тогда хз, недостаточно информации. Читай доки или пиши в тех. поддерку апи.

Нажмите, чтобы раскрыть...

Их суппорты это издевательство) Там вопрос на "Как можно сделать X? например способами а, б, в?" "Вы можете сделать способами а, б, в, не стесняйтесь задавать нам вопросы, мы отвечаем в течении 48 часов"roflanLico.png?1616515069

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

AtagaN

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

Ты локально из приложения делаешь запрос или используешь какой-нибудь клиент? Залогируй исходящий запрос, проверь что запросы совпадают по всем заголовкам и т.п.

Добавь заголовок в запрос "cache-control": "no-cache" если его нет

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

AtagaN сказал(а):

Ты локально из приложения делаешь запрос или используешь какой-нибудь клиент? Залогируй исходящий запрос, проверь что запросы совпадают по всем заголовкам и т.п.

Нажмите, чтобы раскрыть...

Бро очень примитивно, я это все в первую очередь сделалPepeOK.png?1592047625

С бэка делаю запрос на АПИ, ключ что использую локально такой же как и на стейдже. Что постманом, что хттп файлом в идее, что в коде - работает локально, а на стейдже не работает. Апи ключи лежат в сикретс менеджере, то-есть они не отличаются что на стейдже, что локально

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

AtagaN

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

7even7een сказал(а):

Бро очень примитивно, я это все в первую очередь сделалPepeOK.png?1592047625

С бэка делаю запрос на АПИ, ключ что использую локально такой же как и на стейдже. Что постманом, что хттп файлом в идее, что в коде - работает локально, а на стейдже не работает. Апи ключи лежат в сикретс менеджере, то-есть они не отличаются что на стейдже, что локально

Нажмите, чтобы раскрыть...

Примитивно потому что ты ничего не написал.
Добавь заголовок в запрос "cache-control": "no-cache" если его нет

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

AtagaN сказал(а):

Примитивно потому что ты ничего не написал.
Добавь заголовок в запрос "cache-control": "no-cache" если его нет

Нажмите, чтобы раскрыть...

Было бы не плохо если бы сказал зачем:)


пс. логика работает в джобе, браузер не используется

AtagaN

Пользователь

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

AtagaN

Регистрация: 04.11.2016

Сообщения: 1144

Рейтинг: 319

7even7een сказал(а):

Было бы не плохо если бы сказал зачем:)


пс. логика работает в джобе, браузер не используется

Нажмите, чтобы раскрыть...

Он может где угодно закэшироваться. Я бы еще кодировку проверил.

Где разворачивается приложение? Обычный сервак, openshift, tomcat?


Короче возможно у тебя запрос идет через прокси. И 403 ответ возвращает именно прокси.

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

AtagaN сказал(а):

Он может где угодно закэшироваться. Я бы еще кодировку проверил.

Где разворачивается приложение? Обычный сервак, openshift, tomcat?


Короче возможно у тебя запрос идет через прокси. И 403 ответ возвращает именно прокси.

Нажмите, чтобы раскрыть...

хм, ну томкат в докере.

завтра буду дальше разбираться(

ScienceT

Пользователь

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

ScienceT

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

7even7een сказал(а):

хм, ну томкат в докере.

Нажмите, чтобы раскрыть...

Сам сервер на чьей инфраструктуре находится: Amazon, Google, DigitalOcean, etc.?
Потому что не так давно было аналогичное поведение на один из сайтов. Как оказалось, он просто заблокировал какой-то пул адресов, который принадлежит Google, якобы для борьбы с ботами. Возможно у вас аналогичная ситуация.

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 970

Рейтинг: -52

Нарушения: 110

ScienceT сказал(а):

Сам сервер на чьей инфраструктуре находится: Amazon, Google, DigitalOcean, etc.?
Потому что не так давно было аналогичное поведение на один из сайтов. Как оказалось, он просто заблокировал какой-то пул адресов, который принадлежит Google, якобы для борьбы с ботами. Возможно у вас аналогичная ситуация.

Нажмите, чтобы раскрыть...

aws

errorstalker

Пользователь

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

errorstalker

Регистрация: 01.11.2013

Сообщения: 3402

Рейтинг: 1353

Нарушения: 50

img
7even7een сказал(а):

шта?PepeCringe.png?1598477741

Нажмите, чтобы раскрыть...

В чем сложность сделать запрос к серверу через тот же ВПН браузера (если поддерживает ГЕТ запрос), или пустить через ВПН трафик локального сервера, и протестировать что ответит сервер.
Или через курл все это сделать, или пойти на бесплатный хостинг, и с него пхп скриптом сделать запрос к серверу.
Также стоит проверить 64 кодирование.


А вообще ты сам себе ЧСВ буратино.
Ты не дал никакой инфы, на уточняющие вопросы, отвечаешь - очень примитивно... Да там код примитивный, все должно работать сразу, но ты же не предоставил ничего, куда стучишься, как стучишься, и тд и тп. мы не знаем что ты делаешь и как ты это делаешь. 403 - обычно ключ не валидный, читай документацию, и да, по поводу ТП - они правильно тебе ответили, они тебе сказали что этими способами можно сделать, а дальше уже риски бери на себя, и делай как хочешь, они ТП, а не фрилансеры.