2011-04-19 26 views
1

我正在發送SOAP請求來更新某個實體。當我創建(而不是更新)幾乎相同的東西時,一切正常。我跟蹤了客戶端和交通工具的日誌記錄,最後它給了我一個線索。它看起來像這樣:SUDS丟失正文的SOAP部分

DEBUG:suds.client:sending to (https://webservices.autotask.net/ATServices/1.5/atws.asmx) 
message: 
<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://autotask.net/ATWS/v1_5/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns1:Body> 
    <ns0:update> 
    <ns0:Entities xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <ns0:Entity xsi:type="ns0:Ticket"> 
     <ns0:id>123</ns0:id> 
     <ns0:UserDefinedFields xsi:type="xsd:string"></ns0:UserDefinedFields> 
     <ns0:AccountID xsi:type="xsd:string">123</ns0:AccountID> 
     <ns0:AllocationCodeID xsi:type="xsd:string">123</ns0:AllocationCodeID> 
     <ns0:CompletedDate xsi:type="xsd:string">2011-04-04 14:47:02</ns0:CompletedDate> 
     <ns0:CreateDate xsi:type="xsd:string">2011-04-04 04:08:02.000203</ns0:CreateDate> 
     <ns0:CreatorResourceID xsi:type="xsd:string">123</ns0:CreatorResourceID> 
     <ns0:Description xsi:type="xsd:string"></ns0:Description> 
     <ns0:DueDateTime xsi:type="xsd:string">2011-04-05 09:36:00</ns0:DueDateTime> 
     <ns0:EstimatedHours xsi:type="xsd:string">0.0</ns0:EstimatedHours> 
     <ns0:IssueType xsi:type="xsd:string">123</ns0:IssueType> 
     <ns0:LastActivityDate xsi:type="xsd:string">2011-04-04 14:47:04.000157</ns0:LastActivityDate> 
     <ns0:Priority xsi:type="xsd:string">123</ns0:Priority> 
     <ns0:QueueID xsi:type="xsd:string">123</ns0:QueueID> 
     <ns0:Status xsi:type="xsd:string">123</ns0:Status> 
     <ns0:SubIssueType xsi:type="xsd:string">123</ns0:SubIssueType> 
     <ns0:TicketNumber xsi:type="xsd:string">123</ns0:TicketNumber> 
     <ns0:Title xsi:type="xsd:string">foo</ns0:Title> 
     <ns0:FirstResponseDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:FirstResponseDateTime> 
     <ns0:ResolutionPlanDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:ResolutionPlanDateTime> 
     <ns0:ResolvedDateTime xsi:type="xsd:string">2011-04-04 14:47:02.000427</ns0:ResolvedDateTime> 
     <ns0:Resolution xsi:type="xsd:string"></ns0:Resolution> 
    </ns0:Entity> 
    </ns0:Entities> 
</ns0:update> 
</ns1:Body> 
</SOAP-ENV:Envelope> 
DEBUG:suds.client:headers = {'SOAPAction': u'"http://autotask.net/ATWS/v1_5/update"';, 'Content-Type': 'text/xml; charset=utf-8'} 
DEBUG:suds.transport.http:sending: 
URL:https://webservices.autotask.net/ATServices/1.5/atws.asmx 
HEADERS: {'Soapaction': u'"http://autotask.net/ATWS/v1_5/update"', 'SOAPAction': u'"http://autotask.net/ATWS/v1_5/update"', 'Content-Type': 'text/xml; charset=utf-8', 'Content-type': 'text/xml; charset=utf-8', 'Authorization': 'Basic YXV0b21hdGlhQGFyY2VzLm5ldDp5dWYkOWFyN2VQaDY='} 
MESSAGE: 
<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://autotask.net/ATWS/v1_5/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns1:Body> 
    <ns0:update> 
    <Entities/> 
    </ns0:update> 
</ns1:Body> 
</SOAP-ENV:Envelope> 

而與此我得到一個錯誤:

Object reference not set to an instance of an object. 

任何人有任何想法,有什麼與此SOAP請求發生,它失去它的整個實體主體,並繼續空信息?這是泡沫,服務器,代碼和我的問題嗎?

感謝您在支持發生的事情方面的任何幫助。

回答

1

我在回答我自己的問題,所以我最終可以關閉它。

如果有人會感興趣,問題就解決了。 suds.sx中存在一個報告here。由於SOAP請求是用這個編輯的,所以我發送的請求是空的。爲了糾正它,我必須刪除sx部分並使用MessagePlugin進行更改。如果有人會感興趣 - 寫在這裏。

+0

你能解釋一下你是如何解決這個問題的?我也面臨同樣的問題。我的肥皂身體是空的。 – dev 2016-05-10 05:21:35