Заменить nuSOAP на cURL - PullRequest
       7

Заменить nuSOAP на cURL

1 голос
/ 28 января 2012

У меня есть PHP-скрипт, который синхронизирует данные со сторонним сервисом, и я хотел бы, если возможно, заменить nuSOAP на cURL, поскольку я слышал, что cURL работает быстрее.Веб-служба, которую я вызываю, просто берет простую HTTP-запись и возвращает ее, поэтому параметры cURL не должны быть слишком сложными.

Мне нужно передать 4 вещи: идентификатор пользователя, пароль, идентификатор организации иимя веб-службы для получения данных.

Какую часть опций cURL я передаю им?Я пытался передать их в шапке, но я не уверен, что это правильно.Я продолжал получать сообщение «Неверный номер (неверный номер)».

Редактировать: я устанавливаю HTTPHEADER, но похоже, что он все еще устанавливает его в text / html.

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Если вы скажете: «Веб-служба, которую я вызываю, просто принимает HTTP-сообщение», предполагая, что не использует SOAP, вы сделаете это:

 curl_setopt($handle,CURLOPT_POST,true);
 curl_setopt($handle,CURLOPT_POSTFIELDS,array(
      'user_id'  => 'user',
      'password' => 'pass' //etc, all the key/value pairs you need.
     ));

Однако, если является службой SOAP, вам нужно будет сделать запрос SOAP, и что для этого потребуется, мы не можем сказать вам без WSDL. Любой из пакетов PHP XML мог бы создать его, возможно, для простых вещей, даже для обычной обработки строк.

Помощь во встроенном мыльном клиенте (не nusoap) - выполнить запрос с SOAPClient и просто проверить вывод __getLastRequest().

0 голосов
/ 28 января 2012

Так как, у меня есть мысль, что у вас есть некоторое базовое понимание cURL.Я даю вам некоторую поверхностную информацию.

Если вы просто публикуете некоторую информацию на странице, используйте

curl_setopt($agent, CURLOPT_POST, true);
curl_setopt($agent, CURLOPT_POSTFIELDS, $post_data);

, где $post_data будет информацией, которую вы публикуете на странице,что-то вроде

$post_data="name=stanley&feedback=good";

или

Если вы пытаетесь выполнить аутентификацию на странице, просто используйте

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]');
...