9 / 7 / 0
Регистрация: 09.08.2012
Сообщений: 79

Как работать с api?

10.10.2014, 04:02. Показов 24410. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Мне нужно научиться взаимодействовать с различными интернет сервисами при помощи их API, но проблема в том, что я просто не очень понимаю как это делается. Чего-то не достает в понимании, не хватает основ. Не могли бы вы написать что-то нибудь на эту тему или подкинуть статей для начинающих в PHP по этой теме.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2014, 04:02
Ответы с готовыми решениями:

Как работать с API ?!
как работать с API? Ничего не пойму, открываю к примеру: ...

Как работать с Api в VC++???
Какие инклуда надо включать и т.д.? Заранее спасибо!

Как работать с API VK / Facebook?
Добрый день, хочу сделать приложение про универ, в общем разобрался как что делать но есть несколько вопросов, так как я в этом деле...

25
2 / 2 / 0
Регистрация: 22.06.2018
Сообщений: 15
16.07.2018, 23:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Работа с любым api
ну, это звучит, как еслиб я сказал, что все ответы по данному спичу есть в документации со ссылкой php.net
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Чтобы узнать в чем именно ошибка
для этого есть заголовки, которые можно получить без curl
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Нет, слишком мало информации. Да хотябы как просто получить номер ошибки?
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Так я хочу увидеть пример.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$context = stream_context_create(array(
  'http'=>array(
    'method'=>"PUT",
  )
));
 
$response = @file_get_contents('http://www.example.com/', false, $context);
 
if ($response === FALSE) {
    // Error Code
    var_dump($http_response_header);
} else {
    // OK
    var_dump($response);
}
вернёт:

PHP
1
2
3
4
5
6
7
8
9
array(7) {
 [0]=> string(31) "HTTP/1.0 405 Method Not Allowed"
 [1]=> string(29) "Cache-Control: max-age=604800"
 [2]=> string(35) "Date: Mon, 16 Jul 2018 20:10:52 GMT"
 [3]=> string(38) "Expires: Mon, 23 Jul 2018 20:10:52 GMT"
 [4]=> string(25) "Server: EOS (vny006/0454)"
 [5]=> string(17) "Content-Length: 0"
 [6]=> string(17) "Connection: close"
 }
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Теоретическое отступление: протокол http в качестве транспорта использует протокол tcp. Так вот, с помощью curl я могу открыть 1 tcp соединение и использовать его для нескольких разных запросов. Что так умеет file_get_contents я сомневаюсь
HTTP и прочие запросы верхнего уровня всё равно пойдут дважды по отношению к серверу. Мне как-то трудно представить в логах сервера однократный HTTP с несколькими запросами и ответами. Если речь о работе с API с использованием вебсокетов, то это отдельная тема и контекст вебсокетов есть как для для file_get_contents, так и отдельный инструмент, где одно соединение можно открыть (создать) c использованием icmp, udp, tcp и после какого либо многократного использования закрыть. Опять же стандартной библиотекой PHP.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.07.2018, 00:22
Цитата Сообщение от ruflash Посмотреть сообщение
для этого есть заголовки, которые можно получить без curl
Заголовки вообще не для этого предназначены.
Цитата Сообщение от ruflash Посмотреть сообщение
HTTP и прочие запросы верхнего уровня всё равно пойдут дважды по отношению к серверу. Мне как-то трудно представить в логах сервера однократный HTTP с несколькими запросами и ответами
Я ничего из этого не понял.
Цитата Сообщение от ruflash Посмотреть сообщение
Если речь о работе с API с использованием вебсокетов
Нет, все что я говорил про http

Что касается кода, то код http так и не получен. Нужно еще некоторые действия провести по парсингу первой строки. Заголовки берутся из непойми какой переменной. И использован оператор подавления ошибок, тело не получено (на самом деле можно)
0
2 / 2 / 0
Регистрация: 22.06.2018
Сообщений: 15
17.07.2018, 01:56
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Заголовки вообще не для этого предназначены.
Ага, так же как и "не пустое тело" при 400 ошибке.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Я ничего из этого не понял.
Я не сомневался ибо это сложная тема!

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Что касается кода, то код http так и не получен.
Согласен, для этого нужен опыт программирования где-то уроков информатики средней школы.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Нужно еще некоторые действия провести по парсингу первой строки.
Проведи парсинг. "Некоторое действие" не делает инструмент не состоятельным просто из-за того, что надо организовать класс работы с ним в ином виде.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Заголовки берутся из непойми какой переменной.
Те, кто не понимают, опять же, смотрят документацию.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
И использован оператор подавления ошибок
И что?

Цитата Сообщение от Jewbacabra Посмотреть сообщение
тело не получено (на самом деле можно)
В теле будет страница с извинениями админа? Какой от неё толк?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.07.2018, 11:58
ruflash,
Я не сомневался ибо это сложная тема!
Просто там произвольный набор слов написан, не имеющих смысла. Дальше не вижу смысла обсуждать эту тему с собеседником, имеющим крайне поверхностное представление о протоколе http.
0
 Аватар для Точкару
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 85
21.11.2018, 21:28
Цитата Сообщение от ruflash Посмотреть сообщение
зачем в php использовать curl, если имеется встроеный инструмент в виде функции file_get_contents?
Здравствуйте! В программировании я новичок, но для меня эта тема крайне актуальна. Я ее прочитал, но ответа на свой вопрос не нашел.
Подскажите, пожалуйста, где можно почитать про API?
Интересует пошаговый алгоритм действий. Конкретно мне необходимо отправить картинку с Яндекс.Диска на Яндекс.Диалоги с помощью предоставленного API:
POST /api/v1/<идентификатор>/images

Host: https://dialogs.yandex.net
Authorization: OAuth <OAuth-токен>
Content-Type: application/json

{ "url": "<адрес изображения>" }

Предполагаю, нужен обработчик на моем сервере? Или можно обойтись локалкой?
Где почитать про API?

Мне думается, что эта функция file_get_contents не для отправки запросов на другой ресурс, а для их обработки.
0
2 / 2 / 0
Регистрация: 22.06.2018
Сообщений: 15
21.11.2018, 22:47
Цитата Сообщение от Точкару Посмотреть сообщение
Мне думается, что эта функция file_get_contents не для отправки запросов на другой ресурс, а для их обработки.
Как для отправки, так и для получения. Обрабатывать вам надо будет в своём коде.
Но если умеете и установлен, то можете воспользоваться curl-ом, чтоб выглядеть умнее!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2018, 22:47
Помогаю со студенческими работами здесь

Как из C# работать с rest api?
Здравствуйте. Есть ли у кого какие примеры как из C# работать с rest api. Я в этом полный часник. В api есть пример отправки запроса из...

Объясните как работать с API
Всем привет! Есть интернет магазин, при оформлении заказа все последующие действия банально сводятся к отправке письма с заказом...

Как работать с JSON API?
Мне нужно получить список всех профессиональных областей отсюда : http://api.hh.ru/1/json/#proffields Я для этого использую такой код: ...

Как работать с API Platform
Парни всем привет! Подскажите вот какой момент. Мне нужно написать плагин, который по клику на кнопку будет создавать посты с книгами в...

Android Studio не дает работать с API 8 без установленного API 21
Удалил все не интересующие меня библиотеки и поставил только API Level 8. Но при создании приложения вылезает куча ошибок таких как: Что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru