PHP:Загрузить файл с другого веб-сервера, используя базовую аутентификацию?

StackOverflow https://stackoverflow.com/questions/1329712

  •  19-09-2019
  •  | 
  •  

Вопрос

Я использую PHP уже некоторое время, но я не слишком продвинут.У меня не так уж много опыта работы с межсерверными связями.Мне нужно изучить возможность настройки канала данных у поставщика.Контактное лицо, с которым я разговаривал, сказало, что я буду загружать файл с их сервера, используя имя пользователя и пароль с помощью базовой аутентификации.Кто-нибудь, пожалуйста, может рассказать мне, как это сделать?

Спасибо!!

Это было полезно?

Решение

$f = fopen("http://$username:$password@example.com"); 

затем просто используйте те же методы, что и для манипулирования файлами, например.fread, fgets, fclose и т.д.

Другие советы

Заключается в размещении этого заголовка запроса в HTTP-запросе:


$login = "havenard";
$pass  = "my l33t p4ssw0rd";

$header = "Authorization: Basic " . base64_encode("{$login}:{$pass}");

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

Я думаю, что если бы они сказали вам "загрузить файл", вы, возможно, захотели бы реализовать решение на основе cURL:PHP:Скручивание - Ручное

И вы можете использовать запрос заголовка, который Хэвенард перечислил в своем посте:

$login = "havenard";
$pass  = "my l33t p4ssw0rd";
$auth = "Authorization: Basic " . base64_encode("{$login}:{$pass}");

Вероятно, они имеют в виду использование SOAP API, этот формат использует (обычно) имя пользователя / пароль + вызов функции для получения / публикации данных из сервиса.Выполните поиск по php SOAP, или nusoap, и т.д.Этого должно хватить вам для начала работы.

Однако я хотел бы получить твердое "имя" сервиса для использования.Я предполагаю здесь для вас, что это МЫЛО, поскольку это то, с чем я больше всего знаком по личному использованию.

Редактировать:Если только под "базовой аутентификацией" они не подразумевают:http://us.php.net/manual/en/features.http-auth.php

Я предполагаю, что person означает что-то вроде HTTPAuth, когда при переходе на страницу в вашем браузере появляется поле имени пользователя / пароля, и вы должны предоставить учетные данные перед загрузкой содержимого.

Для этого вы можете использовать CURL.PHP имеет хороший набор функции скручивания за то, что справился с этим.Вам нужно будет настроить его с помощью параметра CURLOPT_NETRC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top