PHP » как в php принять ответ от web-сервиса?

Доброго времени суток. Вопрос у меня такой.
Мне нужно из моей формы передать обращение к стороннему web-сервису, в ответ сервис должен вернуть массив строк.

Подскажите пожалуйста как мне получить этот массив?
no image

Аноним

16 января, 05:05
426

Нет комментариев

Добавить комментарий
Вы не можете оставлять комментарии. Чтобы добавить комментарий, залогиньтесь или зарегистрируйтесь
Вы не можете голосовать. Чтобы проголосовать, залогиньтесь или зарегистрируйтесь

1 ответ

  1. Делать AJAX POST запрос и разбирать результаты responce? Слава великому IT-прогрессу, в каждом фреймворке есть инструменты для этого. ( jQuery Ajax )

$.ajax({
  url: 'http://www.somesite.com/',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
 



2. Сделать это при помощи cURL


$url = 'http://www.somesite.com/login';
$ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
          'submit' => 'Login' ,
          'username' => 'yourUsername',
          'password' => 'yourPassword'
      )));
      curl_exec($ch);
 



3. Сделать это при помощи сокетов.


        $file_name = $_FILES['userfile']['name'];     // the file
        $tmp_name = $_FILES['userfile']['tmp_name'];     // the file
        $content_type = $_FILES['userfile']['type'];     // the file mime type
       
        srand((double)microtime()*1000000);
        $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
       
        // Build the header
        $header = "POST $remote_url HTTP/1.0\r\n";
        $header .= "Host: $remote_server\r\n";
        $header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";
        // attach post vars

        foreach($_POST AS $index => $value){
            $data .="--$boundary\r\n";
            $data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
            $data .= "\r\n".$value."\r\n";
            $data .="--$boundary\r\n";
        }

        // and attach the file
        $data .= "--$boundary\r\n";
        $content_file = join("", file($tmp_name));

        $data .="Content-Disposition: form-data; name=\"userfile\"; filename=\"$file_name\"\r\n";
        $data .= "Content-Type: $content_type\r\n\r\n";
        $data .= "".$content_file."\r\n";
        $data .="--$boundary--\r\n";
        $header .= "Content-length: " . strlen($data) . "\r\n\r\n";
        $fp = fsockopen($remote_server, 80);

        fputs($fp, $header.$data);
        fclose($fp);
 
        curl тебя спасёт.       
        Если не надо обрабатывать информацию у себя на сервере, то можно AJAX поюзать.

no image

Аноним

16 января, 05:41

Нет комментариев

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
Инженер-электронщик
Чернигов, ПЭТ Технолоджис Украина
React-native developer
Одесса, Singree.com
Javascript developer
Днепр, Absolutist, game company
Руководитель интернет-магазина
Одесса, Осенина Е.С., ФЛП
Web-разработчик, 20000 грн.
Киев, Concord Pacific, Corp
Data Visualization Engineer
Киев, Smart Solutions
Фахівець з підтримки користувачів
Киев, Данон, ГК (Данон Україна, Нутриція Україна)
SMM-спеціаліст
Киев, 1+1 медіа