shanglei005166 2015-12-19 05:02 采纳率: 83.3%
浏览 1748
已采纳

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

使用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 );


使用 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 ));

图片说明


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方法并不能返回程序执行的数据,求解,两种无论使用哪一种都行,只要能通过就可以了

  • 写回答

1条回答 默认 最新

  • shanglei005166 2015-12-19 07:16
    关注

    自己解决了 传入数据方法名 数据名(表单 input name) 值 保持一直 就可以了 结单

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决