Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么php在使用soap之后发送application/x-gzip文件?_C#_Php_Web Services_Debugging_Soap - Fatal编程技术网

C# 为什么php在使用soap之后发送application/x-gzip文件?

C# 为什么php在使用soap之后发送application/x-gzip文件?,c#,php,web-services,debugging,soap,C#,Php,Web Services,Debugging,Soap,之前发生了什么 我正忙着向soap api添加一个新方法。在测试使用soap api的web应用程序之后,有一种方法不起作用。我没有例外,也不知道发生了什么 发生了什么事 当我像这样调用soap方法时: <?php ini_set('display_errors', 1); error_reporting(E_ALL); date_default_timezone_set('Europe/Amsterdam'); ini_set("soap.wsdl_ca

之前发生了什么

我正忙着向soap api添加一个新方法。在测试使用soap api的web应用程序之后,有一种方法不起作用。我没有例外,也不知道发生了什么

发生了什么事

当我像这样调用soap方法时:

<?php

    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    date_default_timezone_set('Europe/Amsterdam');
    ini_set("soap.wsdl_cache_enabled", 0);
    ini_set("default_socket_timeout", 120);

    $soap = new SoapClient('http://***********.nl/**********.svc?wsdl', array('exceptions' => TRUE));   

    $array = array(
        'appkey' => "b4bf874r64gffrefrt4t334j63rertyh0"
    );
    $res = $soap->getUserList($array);


    /*
    $array = array(
        'user' => "test"
    );
    $res = $soap->userExist($array);
    */

    echo '<pre>';
    echo print_r($res, true);
    echo '</pre>';

?>

我明白了:

gzip文件,而不是包含打印内容的html文件。当我打开文件时,它如下所示:

<?php

    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    date_default_timezone_set('Europe/Amsterdam');
    ini_set("soap.wsdl_cache_enabled", 0);
    ini_set("default_socket_timeout", 120);

    $soap = new SoapClient('http://***********.nl/**********.svc?wsdl', array('exceptions' => TRUE));   

    $array = array(
        'appkey' => "b4bf874r64gffrefrt4t334j63rertyh0"
    );
    $res = $soap->getUserList($array);


    /*
    $array = array(
        'user' => "test"
    );
    $res = $soap->userExist($array);
    */

    echo '<pre>';
    echo print_r($res, true);
    echo '</pre>';

?>

我不知道为什么会这样。php版本是5.3.27,它看起来非常最新,我找不到任何描述这个问题的bug报告

我试图解决的问题

我尝试重新启动soap服务,并搜索了我的c#代码以查找任何错误,但似乎一切正常。php代码看起来也很不错。当我调用out注释的soap方法时,我得到了预期的结果。 即使我犯了一些编码错误,php也不应该这样做

我的问题

是否有人知道发生了什么,我如何解决这个问题。我认为这是一个奇怪的php错误。所有其他soap调用都给了我一个有效的响应

更新

我使用了nusoap:

$client=new nusoap_client('http://******************.nl/******************.svc?wsdl','wsdl');
$client->soap_defencoding='UTF-8';
$client->decode_utf8=false;
$param=数组('appkey'=>“B4BF874R64GFFRFRT4T334J63RERTYH0”);
$result=$client->call('getUserList',array('parameters'=>$param),'','',false,true);
回声';
回声打印(结果,真);
回声';

给出了相同的结果,所以我认为问题不在soap扩展中

解决了它

soap api或PHP代码都没有问题。这是一个恶意软件问题。检查时,我看到控制台出现了一些奇怪的错误。它试图从superfish.com加载javascript

www.superfish.com/ws/sf_preload.jsp?dlsource=viktczu&userId=37078fed3574a308b5e298c9a3fd837&CTID=cE4IwJSsmtycAc&ver=13.1.4.31

在谷歌上搜索时,我发现这被认为是恶意软件,我把它从我的电脑上删除了


其他ajax响应(根本没有soap)也开始失败。现在我知道这是因为这个恶意软件。移除后,一切都恢复正常。

您是否尝试过gzip对其进行放气以查看其内容?还没有。。。我在寻找一种方法之前从未这样做过。看起来Soap端点正在返回gzip数据。
我用winrar打开了gzip文件,其中包含一个我用notepad++打开的文件,它看起来像我期望的html。但是为什么php会这样发送呢?这是一个php/soap错误吗??