热搜:NVER node 开发 php

WEBService Client(PHP)->Server(JAVA)

2024-09-16 10:50:01
WEBService Client(PHP)->Server(JAVA)

最近在做WEBService开发,我这边是做请求端,去请求JAVA做的WEBService,疑问如下,

$ViewProjectNumber['Project'] = '1';
$encodded = new SoapVar($ViewProjectNumber, SOAP_ENC_OBJECT);
$result = $client->oaProjectRequest($encodded);



Server接收$encodded显示出来的值??<number>1</number>? 被转义了,请问如何解决呢?
?


回复讨论(解决方案)

print_r($encodded);
SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[Project] => 1
)
)
显然不是在客户端转义的
但作为xml节点数据的话,则被转义是正确的,不然就被当做节点了
你或许要使用 CDATA

print_r($encodded);
SoapVar Object
(
    [enc_type] => 301
    [enc_value] => Array
        (
            [Project] => 1
        )
)
显然不是在客户端转义的
但作为xml节点数据的话,则被转义是正确的,不然就被当做节点了
你或许要使用 CDATA
在这方法基础上,如何防止转义呢?能说明下吗?

写成这样看看
$ViewProjectNumber['Project'] = '1]]>';

写成这样看看
$ViewProjectNumber['Project'] = '1]]>';
接收到的信息如下:
<?xml version="1.0" encoding="UTF-8"?>
74655564fe70645d3ac969c920cc3d631e0bd52e4d90ca6b8d125a85a98992033]]>

@xuzuning 我给你发下gettypes获取到的东西
Array
(
    [0] => struct UnitReserve {
 Reserve Reserve;
}
    [1] => struct Revenue {
 ContractUnitNumber ContractUnitNumber;
 ElevatorModel ElevatorModel;
 CostQuantity CostQuantity;
 ContractValueNetOfTax_EQ ContractValueNetOfTax_EQ;
 FreeMaintenanceRevenue_EQ FreeMaintenanceRevenue_EQ;
 CTURevenue_IN CTURevenue_IN;
 ContractValueNetOfTax_IN ContractValueNetOfTax_IN;
 Currency Currency;
 RevenueReserve RevenueReserve;
}
    [2] => string ContractUnitNumber
    [3] => string ElevatorModel
    [4] => decimal CostQuantity
    [5] => decimal ContractValueNetOfTax_EQ
    [6] => decimal FreeMaintenanceRevenue_EQ
    [7] => decimal CTURevenue_IN
    [8] => decimal ContractValueNetOfTax_IN
    [9] => string Currency
    [10] => struct RevenueReserve {
 Reserve Reserve;
}
    [11] => struct Project {
 ViewProjectNumber ViewProjectNumber;
 boolean NewInstallation;
 boolean Modification;
 boolean CrossRegionSales;
 PersonResponsible PersonResponsible;
 EquipmentContractNumber EquipmentContractNumber;
 FrameworkAgreementNumber FrameworkAgreementNumber;
 InstallationContractNumber InstallationContractNumber;
 ProjectName_CN ProjectName_CN;
 ProjectName_EN ProjectName_EN;
 string PlannedStartDate;
 string PlannedFinishDate;
 EquipmentSignOffCustomer EquipmentSignOffCustomer;
 BillToParty BillToParty;
 InstallationContractSignOffCustomer InstallationContractSignOffCustomer;
 BillToParty2 BillToParty2;
 EquipmentContract EquipmentContract;
 InstallationCommissioningContract InstallationCommissioningContract;
 ProjectReserve ProjectReserve;
 Unit Unit;
}
    [12] => string ViewProjectNumber
    [13] => string PersonResponsible
    [14] => string EquipmentContractNumber
    [15] => string FrameworkAgreementNumber
    [16] => string InstallationContractNumber
    [17] => string ProjectName_CN
    [18] => string ProjectName_EN
    [19] => string EquipmentSignOffCustomer
    [20] => string BillToParty
    [21] => string InstallationContractSignOffCustomer
    [22] => string BillToParty2
    [23] => string EquipmentContract
    [24] => string InstallationCommissioningContract
    [25] => struct Cost {
 ContractUnitNumber ContractUnitNumber;
 CostItem CostItem;
 CostIndicator CostIndicator;
 CostCode CostCode;
 CostQuantity CostQuantity;
 ProcurementPrice ProcurementPrice;
 Currency Currency;
 CostReserve CostReserve;
}
    [26] => string ContractUnitNumber
    [27] => string CostItem
    [28] => string CostIndicator
    [29] => string CostCode
    [30] => decimal CostQuantity
    [31] => decimal ProcurementPrice
    [32] => string Currency
    [33] => struct ProjectRequest {
 Project Project;
}
    [34] => struct Unit {
 ContractUnitNumber ContractUnitNumber;
 MFG_WBS MFG_WBS;
 GADNumber GADNumber;
 TP2QuotationNumber TP2QuotationNumber;
 DAUnitNumber DAUnitNumber;
 UnitInterestsAttributeBranch UnitInterestsAttributeBranch;
 SupplierFactory SupplierFactory;
 UnitQuantity UnitQuantity;
 ElevatorModel ElevatorModel;
 RatedLoad RatedLoad;
 RatedSpeed RatedSpeed;
 Floors Floors;
 Stops Stops;
 TravellingHeight TravellingHeight;
 MainDoorSideLandingDoors MainDoorSideLandingDoors;
 OppositeDoorSideLandingDoors OppositeDoorSideLandingDoors;
 LandingDoors LandingDoors;
 Length Length;
 InstallContractSigningBranch InstallContractSigningBranch;
 InstallContractExecutionBranch InstallContractExecutionBranch;
 ElevatorType ElevatorType;
 NonStopFloors NonStopFloors;
 OpenThroughDoor OpenThroughDoor;
 FloorsBothSideOpenThroughDoor FloorsBothSideOpenThroughDoor;
 ShaftHeight ShaftHeight;
 StepWidth StepWidth;
 InclinationAngle InclinationAngle;
 Rise Rise;
 EscalatorWhereUsed EscalatorWhereUsed;
 Segment Segment;
 IntervalSupport IntervalSupport;
 UnitReserve UnitReserve;
 Revenue Revenue;
 Cost Cost;
}
    [35] => string ContractUnitNumber
    [36] => string MFG_WBS
    [37] => string GADNumber
    [38] => string TP2QuotationNumber
    [39] => string DAUnitNumber
    [40] => string UnitInterestsAttributeBranch
    [41] => string SupplierFactory
    [42] => decimal UnitQuantity
    [43] => string ElevatorModel
    [44] => decimal RatedLoad
    [45] => decimal RatedSpeed
    [46] => decimal Floors
    [47] => decimal Stops
    [48] => decimal TravellingHeight
    [49] => decimal MainDoorSideLandingDoors
    [50] => decimal OppositeDoorSideLandingDoors
    [51] => decimal LandingDoors
    [52] => decimal Length
    [53] => string InstallContractSigningBranch
    [54] => string InstallContractExecutionBranch
    [55] => string ElevatorType
    [56] => decimal NonStopFloors
    [57] => string OpenThroughDoor
    [58] => decimal FloorsBothSideOpenThroughDoor
    [59] => decimal ShaftHeight
    [60] => decimal StepWidth
    [61] => decimal InclinationAngle
    [62] => decimal Rise
    [63] => string EscalatorWhereUsed
    [64] => decimal Segment
    [65] => string IntervalSupport
    [66] => struct CostReserve {
 Reserve Reserve;
}
    [67] => struct ProjectReserve {
 Reserve Reserve;
}
    [68] => struct Reserve {
 Key Key;
 Value Value;
}
    [69] => string Key
    [70] => string Value
)



-----------------------------------------
我现在给你发下我现在如何调用的
$client = new Zend_Soap_Client('http://localhost:8080/mockoaProjectRequestBinding?WSDL') ;
$xml = simplexml_load_file("a.xml") ;
$client->oaProjectRequest($xml) ;
但是Server接收的时候,要是XML文件中有这样2个unit节点,他只能接收到一个。