繁体   English   中英

从PHP客户端向int.net网络服务发布int始终为0

[英]Post an int from a PHP client to a asp.net webservice is always 0

嗨,我似乎已经使用asp.net创建了一个SOAP Web服务,并使用PHP客户端对其进行了测试以获取数据,并且该服务似乎可以获取数据。

当我尝试发布数据时出现问题。服务器似乎总是接收值0。这是我的asp.net Web服务代码:

public void DeleteBook(int categoryId)
    {
        using (var conn = new OdbcConnection(connectionString))
        {
            conn.Open();
            using (var command = new OdbcCommand())
            {
                command.Parameters.Add(new OdbcParameter("@CategoryId", categoryId));
                command.CommandText = "DELETE FROM Books WHERE CategoryId = @CategoryId";
                command.ExecuteNonQuery();
            }
        }
    }

这是我的PHP Soap客户端代码:

  $client = new SoapClient($url);
  if(isset($_POST["id"])){
            $id = $_POST["id"];
            echo $id;
            $client->DeleteBook($id);
   }

我调试了服务,似乎DeleteBook方法获得成功,但问题是categoryId为0。

我究竟做错了什么?

嗨,我设法通过实际将参数作为数组发送来解决了这个问题。

if(isset($_POST["id"])){
        $id = $_POST["id"];
        $obj = array("categoryId" => $id);
        $client->DeleteBook($obj);
}

您将需要将字符串转换为整数。 您可以在客户端或服务器端执行此操作。

尝试在您的PHP代码中编写(int) $id ,这样做有用吗?

 $client = new SoapClient($url);
  if(isset($_POST["id"])){
        $id = (int) $_POST["id"];
        echo $id;
        $client->DeleteBook($id);
  }

我认为任何无法解析为整数的值都将为0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM