Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2019, 10:48   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию сервер выдаёт "not found" на все GET-запросы через indy компоненты

Здравствуйте.
Нужно послать серверу GET-запрос и получить ответ.
Регистрируемся на сайте и в личном кабинете создаем свой уникальный ID (его можно менять в любое время). После чего можно посылать серверу запросы типа:

Код:
  IdHTTP1.Request.CustomHeaders.Add('Client-ID: <ID>');
  IdHTTP1.Request.CustomHeaders.Add('Accept: application/vnd.twitchtv.v5+json');
  Memo1.Lines.Text := IdHTTP1.Get('https://api.twitch.tv/kraken/');
В ответ приходит сообщение о том, что запрос был принят успешно, но в нем недостаточно параметров.
Усложняем задачу и посылаем полный запрос:
Код:
  IdHTTP1.Request.CustomHeaders.Add('Client-ID: <ID>');
  IdHTTP1.Request.CustomHeaders.Add('Accept: application/vnd.twitchtv.v5+json');
  Memo1.Lines.Text := IdHTTP1.Get('https://api.twitch.tv/kraken/users?login=miramisu');
В ответ должен прийти небольшой JSON-файл, но вместо этого в Delphi вываливается исключение с текстом ошибки: HTTP/1.1 404 Not Found.
И все остальные запросы IdHTTP1.Get('https://api.twitch.tv/kraken/bla-blaa-bla выдают эту же ошибку.
А если скачать программу CURL и в консоли выполнить команду
Код:
curl -H "Accept: application/vnd.twitchtv.v5+json" -H "Client-ID: <ID>" -X GET https://api.twitch.tv/kraken/users?login=miramisu
то всё работает. JSON-файл приходит.
Почему запросы из Delphi выдают ошибку Not found?
BLACK_RAIN вне форума Ответить с цитированием
Старый 03.02.2019, 14:17   #2
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Разобрался. В Delphi надо посылать запросы не так как написано в документации к API сайта, а немного по-другому.
Как это я сразу не догадался? Всё же так очевидно.
BLACK_RAIN вне форума Ответить с цитированием
Старый 03.02.2019, 14:18   #3
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
а немного по-другому.
Написали бы как, чтобы тема за зря не висела без ответа.
Alar вне форума Ответить с цитированием
Старый 22.02.2019, 08:33   #4
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Написали бы как, чтобы тема за зря не висела без ответа.
Если опустить некоторые подробности, то проблема оказалась в кривизне компонентов Indy. Если отправлять запросы через WinAPI - всё нормально работает.

Последний раз редактировалось BLACK_RAIN; 22.02.2019 в 08:35.
BLACK_RAIN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компоненты indy ivanik Работа с сетью в Delphi 3 16.05.2016 17:14
У меня borland developer studio delphi 2006 так вот как вставить на вкладку tool palette компоненты Indy Clients и Indy Misc Artem_host Общие вопросы Delphi 0 01.02.2012 09:55
Компоненты indy DelPavel Компоненты Delphi 0 10.05.2011 12:25
POST на indy HTTP/1.1 404 Not Found jskorvin Работа с сетью в Delphi 2 14.12.2010 13:52
Indy. HTTP 404 Not found TwiX Работа с сетью в Delphi 6 14.09.2010 02:30