Страницы

Поиск по вопросам

пятница, 3 января 2020 г.

Отправка header методом POST PHP (замена xhr.setRequestHeader) [закрыт]

#php #javascript #http #post


        
             
                
                    
                        
                            Закрыт. Этот вопрос не по теме. Ответы на него в данный
момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Update the question so it's
on-topic for Stack Overflow на русском.
                        
                        Закрыт 2 года назад.
                                                                                
           
                
        
Можно ли как то перевести это в PHP, если да то подскажите пожалуйста как?

 function request(func, params, onSuccess) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'http://FF2:7000/$gate/request', true);
    xhr.setRequestHeader("pro-verba-esb-queue", "IM");
    xhr.setRequestHeader("x-function", encodeURI(func));
    xhr.onreadystatechange = function() {
      if (this.readyState != 4) return;
      if (this.status != 200) {
        alert( 'ошибка: ' + (this.status ? this.statusText : 'запрос не удался') );
        return;
      }
      onSuccess(this.responseText);
    }
    xhr.send(JSON.stringify(params));
  }

    


Ответы

Ответ 1



Воспользуйтесь curl $url = 'http://FF2:7000/$gate/request'; $headers = array( 'pro-verba-esb-queue: IM', 'x-function: '+encodeURI(func) ); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); echo $result;

Ответ 2



Используй библиотеку Guzzle. Вот ссылка на нее http://guzzlephp.org. Приведу небольшой пример, а для большего пониманий прочитай документацию $client = new GuzzleHttp\Client(); $client->request('POST', 'http://FF2:7000/$gate/request', [ 'headers' => [ 'pro-verba-esb-queue' => 'IM', 'x-function' => "" ] ]);

Комментариев нет:

Отправить комментарий