[PHP学习]论PHP调用.net的webservice接口所碰到的坑

Wampserver配置:

修改php.ini  ;extension=php_soap.dll

那么首先写一个简单的服务端的测试方法

 $url_webservice=C('URL_webservice');  // 接口
 $client = new \SoapClient($url_webservice.'/flowservice.asmx?wsdl',array('encoding'=>'UTF-8'));
 //  参数数组(用于具体方法)
 $aryPara = array('vkorg'=>$keycol3, 'kkber'=>$keycol4,'flowid'=>$flowid,'sysno'=>$flowmap); 
 $getHtmlmap = $client->GetUserRelation($aryPara);  // 调用接口里面的方法
通过调用接口获得数据。

但在调试过程中,会发现很多方法不起作用,显示不存在或可不用,即是服务器端PHP的soap的WSDL缓存造成的,下面提供的修改方法:

soap.wsdl_cache_enabled=1(改为0)
soap.wsdl_cache_ttl=86400(改为0)
重启Wamp,然后接口的方法即可用,同时客户端以及服务器端的机器都需修改。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C 调用 PHP WebService 可以使用 libcurl 库来实现。具体步骤如下: 1. 引入 libcurl 库头文件。 ```c #include <curl/curl.h> ``` 2. 初始化 libcurl 库。 ```c curl_global_init(CURL_GLOBAL_ALL); ``` 3. 创建一个 CURL 对象。 ```c CURL *curl = curl_easy_init(); ``` 4. 设置请求 URL 和请求方式。 ```c curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/webservice.php"); curl_easy_setopt(curl, CURLOPT_POST, 1L); ``` 5. 设置请求参数。 ```c curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "param1=value1&param2=value2"); ``` 6. 设置回调函数,接收响应数据。 ```c curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback_function); ``` 7. 发送请求并接收响应。 ```c CURLcode res = curl_easy_perform(curl); ``` 8. 处理响应数据。 ```c static size_t callback_function(char *ptr, size_t size, size_t nmemb, void *userdata) { // 处理响应数据 return size * nmemb; } ``` 9. 释放 CURL 对象和 libcurl 库资源。 ```c curl_easy_cleanup(curl); curl_global_cleanup(); ``` C# 调用 PHP WebService 可以使用 .NET Framework 的 System.Net 命名空间中的 WebClient 类来实现。具体步骤如下: 1. 引入 System.Net 命名空间。 ```c# using System.Net; ``` 2. 创建一个 WebClient 对象。 ```c# WebClient client = new WebClient(); ``` 3. 设置请求 URL 和请求方式。 ```c# string url = "http://example.com/webservice.php"; client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; ``` 4. 设置请求参数。 ```c# string postData = "param1=value1&param2=value2"; byte[] postDataBytes = Encoding.UTF8.GetBytes(postData); ``` 5. 发送请求并接收响应。 ```c# byte[] responseDataBytes = client.UploadData(url, "POST", postDataBytes); string responseData = Encoding.UTF8.GetString(responseDataBytes); ``` 6. 处理响应数据。 ```c# // 处理响应数据 ``` 7. 释放 WebClient 对象。 ```c# client.Dispose(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值