[英]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.