用cURL替换nuSOAP

时间:2012-01-27 20:08:13

标签: php curl nusoap

我有一个PHP脚本,可以将数据与第三方服务同步,如果可能的话,我希望用cURL替换nuSOAP,因为我听说cURL更快。我调用的Web服务只需要简单的HTTP post并返回它,因此cURL参数不应该太复杂。

我需要传递4件事,一个用户ID,密码,组织ID和Web服务的名称,以便从中接收数据。

我传递了哪些cURL选项?我试图在标题中传递它们,但我不确定这是否正确。我一直收到“错误请求(无效号码)”错误。

编辑:我正在设置HTTPHEADER,但看起来它仍然将其设置为text / html。

2 个答案:

答案 0 :(得分:0)

因为,我认为您对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]');

答案 1 :(得分:0)

如果你说'我正在调用的网络服务只需要简单的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包都可以创建它,可能是为了简单的事情,甚至是正常的字符串操作。

内置soapclient(不是nusoap)的帮助是使用SOAPClient执行请求,并检查__getLastRequest()的输出。