php soapclient post,php-PHP使用curl_init post 提交json 或 SoapClient 外部服务器报错

本文探讨了如何使用curl_init和SoapClient库向特定URL发送JSON数据,并解决ccode参数变化导致插入失败的问题。作者分享了两种方法的实现细节和遇到的问题,旨在找到通过HTTP POST和SOAP服务的有效解决方案。
摘要由CSDN通过智能技术生成

使用curl_init:

$serviceURL = 'http://61.153.225.106:5678/Service.asmx/tests';

$ch = curl_init ( $serviceURL );

curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "POST" );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $strjson ); //全部数据使用HTTP协议的POST操作来发送

curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );

curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );

curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (

'Content-Type: application/json; charset=utf-8;',

'Content-Length: ' . strlen ( $strjson )

) );

curl_setopt($ch,CURLOPT_POST,1);

$result = curl_exec ( $ch );

$errorNo = curl_errno ( $ch );

echo $errorNo; //错误号 输出0

echo "error:".curl_error($ch);

echo $result; //执行信息 报错

curl_close ( $ch );

1450420302_248471.jpg

使用 SoapClient :

$client = new SoapClient("http://61.153.225.106:5678/Service.asmx?WSDL", array('cache_wsdl' => 0));

$strjson = array('param1'=>'01', 'param2'=>'02');

$result = $client->__Call("tests", array( $strjson ));

1450501059_703556.jpg

json字符串:{"ccode":"1234ew4" , "ddate":"2015-12-16", "ccuscode":"0100001", "cinvcode":"100101", "iquantity":"1", "address":"测试地址", "cmemo":"无", "cmaker":"demo", "cverifer":"demo", "dpredate":"2015-12-17", "imoney":"1"}

其中ccode是需要变化的,同一个插入不进去。

由于是往第三方插入数据,所以没法改变上传的形式 ,只能上传json格式。

另外如果网页中输入 http://61.153.225.106:5678/Service.asmx?op=tests 然后再输入字符串是可以返回字符串的。

后面这个SoapClient方法并不能返回程序执行的数据,求解,两种无论使用哪一种都行,只要能通过就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值