从PHP客户端向asp.net Web服务发布int始终为0
本文关键字:int 服务 客户端 PHP asp Web net | 更新日期: 2023-09-27 18:19:45
Hi我似乎已经使用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。
我做错了什么?
Hi我通过实际将参数作为数组发送来解决了这个问题。这就是我所做的,它起到了作用:
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。