从PHP调用C#Web服务的最佳方法

时间:2013-01-18 14:48:28

标签: c# php json web-services soap

我在PHP中有表单,我应该从表单生成一些数据并将其发送到c#web服务。从PHP网站调用我的c#web服务方法的最佳方法是什么?这是我的C#Web服务

public string Methode1(string Par1, int Par2, List<String> par3)

我的列表Par3应该包含几千个元素。我应该使用JSON还是应该在PHP中创建一个数组并通过SOAP调用将其发送到C#?我该如何创建请求?

如果连接断开,在JSON或SOAP中请求会发生什么?

2 个答案:

答案 0 :(得分:2)

同样会发生。请求只是一个HTTP请求。响应的内容包含SOAP消息或任何其他内容,可能是JSON。如果收到一条消息,则无论是否包含JSON或SOAP XML消息,您都可能无法对其进行解析。

就个人而言,我不是SOAP的忠实粉丝,宁可选择基于JSON的REST界面。

答案 1 :(得分:1)

我最近使用PHP来调用C#ServiceStack服务。它是这样的:

$content = json_encode($yourServiceMethodsArgumentShapeInstance);


$curl = curl_init($endpointUrl);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

$jsonResponse = curl_exec($curl);

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);