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

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

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

Аноним

15 января, 05:41
394

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

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

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

Аноним

15 января, 06:01

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

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
Программист 1C
Запорожье, Штурман
Content Writer (blog articles, misc topics), 6000 грн.
Киев, DexDigital
Senior Python Software Engineer
Днепр, SoftServe
CRM-developer
Киев, CRMiUM
.Net Developer
Николаев (Николаевская обл.), GeeksForLess Inc.
Skilled PHP developer
Днепр, Cron Agency
Project Manager
Киев, Lizard soft