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

问题描述

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

解决方案

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

时间: 2024-08-18 03:22:20

php-PHP使用curl_init post 提交json 或 SoapClient 外部服务器报错的相关文章

http协议-PHP使用curl_init post 提交json 外部服务器报错

问题描述 PHP使用curl_init post 提交json 外部服务器报错 [code=php]$serviceURL = 'http://61.153.225.106:5678/Service.asmx/tests';$ch = curl_init ( $serviceURL );curl_setopt ( $ch CURLOPT_CUSTOMREQUESTPOST"" );curl_setopt ( $ch CURLOPT_RETURNTRANSFER true );curl_

nodejs 判断 数组为空的 json数据时,一直报错undefined

问题描述 nodejs 判断 数组为空的 json数据时,一直报错undefined 对不起各位大神,请不要恨铁不成钢,我真心不懂这个简单的初级问题. 我自己在做一个API小程序,用nodejs的request包抓取了许多json数据. 问题简单的来说就是,我需要判断一个有时候有数值,有时候却为空的属性,属性名为deliverTime, 当deliverTime存在的时候,抓取这个json属性,当deliverTime不存在的时候,不抓取. 然而,如果我的判断语句为: if(body.data.

SSH框架下调用sesion.delete()提交后运行,运行没有报错但数据库没有删除数据

问题描述 SSH框架下调用sesion.delete()提交后运行,运行没有报错但数据库没有删除数据 public boolean deleteUser(User u) { Session session = sessionFactory.getCurrentSession();// 获得session session.beginTransaction();// 开启事物 try { session.delete(u); session.getTransaction().commit(); }

$.ajax传JSON数据到后台出现报错问题解决

 $.ajax传JSON数据到后台时总会出现一些错误,本文整理了一些注意事项,感兴趣的朋友可以参考下 代码如下: $.ajax({  url: "../Services.ashx",  type: "POST",  //data: { 'data': { 'typename': JSON.stringify(typename) }, 'operationType': '2' },  data: { 'data': typename, 'operationType':

$.ajax传JSON数据到后台出现报错问题解决_AJAX相关

复制代码 代码如下: $.ajax({ url: "../Services.ashx", type: "POST", //data: { 'data': { 'typename': JSON.stringify(typename) }, 'operationType': '2' }, data: { 'data': typename, 'operationType': '2','nowheight':nowheight,'nowarea':nowarea }, su

Struts的action提交后,结果页面刷新报错的问题

问题描述 经过如下:struts有一个action,是显示用户列表的,在首页通过此连接来显示所有用户列表,通过hibernate查询后,将list存放在request中,然后在结果页面,通过取得request中的list进行显示.tomcat刚启动时,点这个链接能够显示所有用户列表,地址栏此时的地址是http://localhost/vmia/userlist.do,但是如果刷新的话,用户列表就消失了.而且控制台会报错.请大家帮忙看下是什么原因** BEGIN NESTED EXCEPTION

jpa查询对象,转json字符串时候报错

问题描述 数据库有个一对多的关系.我现在从一这端拿数据,想转换成json字符串的时候,报错.报错信息如下:org.hibernate.HibernateException:NoCurrentSessionContextconfigured!atorg.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1012)atsun.reflect.NativeMethodAccessorImpl.

解析PHP 使用curl提交json格式数据

本篇文章是对PHP中使用curl提交json格式数据的实现方法进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: $data = array("name" => "Hagrid", "age" => "36"); $data_string = json_encode($data); $ch = curl_init('http://api.local/rest/users'); curl_setopt(

网页-python 中提交json问题

问题描述 python 中提交json问题 info={"name":"user"} jinfo=json.dumps(info) 然后urllib2.urlopen(req,jinfo) 作为post提交,但我在wireshark抓包的数据来看,我 提交的是{"name":"user"}, 如果用网页来担交的话,它提 交上去的是name=user 请大神指教