我正在使用soap api在php中开发web应用程序。我有xml format as shown below
将请求发送到api但我在postman
中查看xml时收到错误,如元素公司名称上不允许使用尾随solidus。
<OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" ResponseType="OTA" ResponseVersion="1.9.2" Version="1.9.2" AvailableFlightsOnly="true">
<POS>
<Source PseudoCityCode="PCC">
<RequestorID ID="1" Type="1">
<CompanyName Code="TN" />
</RequestorID>
</Source>
</POS>
<OriginDestinationInformation RPH="1">
<DepartureDateTime>2016-03-15T11:00:00</DepartureDateTime>
<OriginLocation LocationCode="KTM"/>
<DestinationLocation LocationCode="DEL"/>
<TPA_Extensions>
<SegmentType Code="O"/>
</TPA_Extensions>
</OriginDestinationInformation>
<TravelPreferences ValidInterlineTicket="true">
<CabinPref PreferLevel="Preferred" Cabin="Y" />
<TPA_Extensions>
<TripType Value="Return" />
<LongConnectTime Min="780" Max="1200" Enable="true" />
<ExcludeCallDirectCarriers Enabled="true" />
</TPA_Extensions>
</TravelPreferences>
<TravelerInfoSummary>
<SeatsRequested>3</SeatsRequested>
<AirTravelerAvail>
<PassengerTypeQuantity Code="ADT" Quantity="2" />
<PassengerTypeQuantity Code="CHD" Quantity="1" />
</AirTravelerAvail>
</TravelerInfoSummary>
<TPA_Extensions>
<IntelliSellTransaction>
<RequestType Name="50ITINS" />
</IntelliSellTransaction>
</TPA_Extensions>
</OTA_AirLowFareSearchRQ>
我用Google搜索了错误,但未找到任何解决方案。我也无法确定错误是什么,所以我需要一些帮助。
当我将鼠标悬停在第5行的十字标志时,我得到错误,如元素公司名称上不允许使用尾随实体,当我将鼠标悬停在第6行时,我会收到类似错误结束标记的错误(requestorid)被忽略。这里我无法确定错误是什么。我认为它采用正确的xml格式。
答案 0 :(得分:6)
我今天发生了这种情况,但我需要做的就是切换Postman中的响应查看器类型&#34; HTML&#34;到&#34; XML&#34;并且错误消失了。这可能发生了,因为服务器响应没有正确设置Content-Type
标题 - 它以text/html
代替我而不是text/xml
。
答案 1 :(得分:0)
实际上,这与<CompanyName Code="TN" />
之类的自闭标签有关。
只需将其替换为<CompanyName Code="TN"></CompanyName>
,错误就会消失。
希望这会有所帮助。
答案 2 :(得分:-1)
尝试这种方式:
<POS>
<Source PseudoCityCode="ThisShouldBeYourIPCCNotJustPCCasValue">
<RequestorID ID="1" Type="1">
<CompanyName Code="TN">TN</CompanyName>
</RequestorID>
</Source>
</POS>