昨天有使用soap傳輸數據到Webservice,其中字元串類型的都已經傳輸成功,但是有幾個參數傳輸失敗,java伺服器端收到的空值。 因為我是php的,然後接收端是java製作的,其中有幾個參數是list數組類型的,我剛開始將php的數組傳過去,服務端接收到的是空,然後再使用json格式還是不行。 ...
昨天有使用soap傳輸數據到Webservice,其中字元串類型的都已經傳輸成功,但是有幾個參數傳輸失敗,java伺服器端收到的空值。
因為我是php的,然後接收端是java製作的,其中有幾個參數是list數組類型的,我剛開始將php的數組傳過去,服務端接收到的是空,然後再使用json格式還是不行。後來去詢問java同事,他們說list數組類型不像php一樣是有鍵值和鍵名的,
java的list數組是只有name和value對應關係,如下所示
$arr = array('userid'=>1,'name'=>'張三',params=>arrary(array('name'=>'數組1','value'=>'值1'),'name'=>'數組2','value'=>'值2'));
將數組通過name和value對應關係後傳輸給java,java就能解析list數組進行存儲。
__soapCall返回的是object類型的數組,可以先使用json_encode,然後再json_decode進行轉換,變為數組格式進行分析判斷。
到此為止,soap傳輸數據總算完成了。接下來就是一些細節對接問題。因為Webservice是有用戶校驗的,因此我需要先使用它們的登錄方法進行登錄,然後獲取到對應的session值。為了避免不必要的重覆登錄步驟,因此我將此session值緩存下來,
放入到cash目錄下,然後每次傳輸數據時都先取然後傳輸,如果session過期或者無效,根據返回的code判斷然後再重新登錄更新session值。