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

从PHP调用C#web服务的最佳方法,c#,php,json,web-services,soap,C#,Php,Json,Web Services,Soap,我有PHP中的表单,我应该从表单中生成一些数据并将其发送到c#web服务。从PHP网站调用我的c#web服务方法的最佳方式是什么?这是我的C#web服务 public string Methode1(string Par1, int Par2, List<String> par3) publicstringmethod1(stringpar1、int Par2、List par3) 我的列表Par3应该包含几千个元素。我应该使用JSON还是应该在PHP中创建一个数组并通过SOAP

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

public string Methode1(string Par1, int Par2, List<String> par3)
publicstringmethod1(stringpar1、int Par2、List par3)
我的列表Par3应该包含几千个元素。我应该使用JSON还是应该在PHP中创建一个数组并通过SOAP调用将其发送给C#?我应该如何创建请求


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

两者都会发生同样的情况。请求只是一个HTTP请求。响应的内容包含SOAP消息或任何其他内容,可能是JSON。如果您收到一条半消息,您可能无法解析它,不管它是包含JSON还是SOAP XML消息


就我个人而言,我不太喜欢SOAP,宁愿选择基于JSON的REST接口。

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

也是个人的,但我同意。每次+1有任何方式使用某种事务时,我都选择REST而不是SOAP,这样用户就可以确保所有数据都发送到web服务了?几乎没有。TCP本身有很好的故障转移度量,但除此之外,没有。您能做的最好的事情是尝试分析结果。如果缺少最后一个字符,则XML和JSON都无效。在这种情况下,您可以抛出错误或再次执行请求。但通常您会有一个成功的请求,或者超时(很容易捕获),或者服务器端错误,导致500状态码。我不知道在任何情况下,我都会收到一个最初看起来还行,但后来却被切断的响应。你能告诉我这是REST还是SOAP呼叫吗?谢谢。@DukaNikolau它将被分类为REST(使用该首字母缩写词的松散解释)。如果我必须从两个文本框和一个数组中选择数据,我应该如何创建这个对象$yourServiceMethodsArgumentShapeInstance?这实际上取决于服务器端实现。如果您将服务编写为接受JSON,那么您只需使用它<代码>服务堆栈使操作变得非常简单。