簡體   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