Отличное мыло, добавление заголовка конверта

Я пытаюсь написать обработчик устройства для платформы Samsung Smartthings. Мне нужно вызвать API-интерфейс SOAP, и в целом он работает с большинством необходимых команд. Однако одной из команд требуется заголовок конверта, который необходимо добавить в запрос XML. Я могу добавить что угодно к телу конверта, но не могу понять, как добавить заголовок конверта.

Мой оригинальный код для этого запроса:

hubaction = new physicalgraph.device.HubSoapAction(
path:    "/soap/server_sa/",
urn:     'urn:NETGEAR-ROUTER:service:WLANConfiguration:1',
action:  "SetGuestAccessEnabled",
body:    ["NewGuestAccessEnabled":"0" ],
headers: [Host:"192.168.254.1:80", Authorization: userpass, CONNECTION: "keep-alive"]
)

и он производит этот запрос XML:

POST /soap/server_sa/ HTTP/1.0
SOAPAction: urn:NETGEAR-ROUTER:service:WLANConfiguration:1#SetGuestAccessEnabled
content-type: text/xml;charset=utf-8
HOST: www.routerlogin.com
User-Agent: SOAP Toolkit 3.0
connection: keep-Alive
Cache-Control: no-cache
Pragma: no-cache
content-length: 588

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" 
xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body><M1:SetGuestAccessEnabled xmlns:M1="urn:NETGEAR-ROUTER:service:WLANConfiguration:1"><NewGuestAccessEnabled>0</NewGuestAccessEnabled></M1:SetGuestAccessEnabled>
</SOAP-ENV:Body></SOAP-ENV:Envelope>HTTP/1.0 200 OK
CONTENT-LENGTH: 509
CONTENT-TYPE: text/xml; charset="utf-8"
SERVER: Linux UPnP/1.0

но мне нужно это:

POST /soap/server_sa/ HTTP/1.0
SOAPAction: urn:NETGEAR-ROUTER:service:WLANConfiguration:1#SetGuestAccessEnabled
content-type: text/xml;charset=utf-8
HOST: www.routerlogin.com
User-Agent: SOAP Toolkit 3.0
connection: keep-Alive
Cache-Control: no-cache
Pragma: no-cache
content-length: 588

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" 
xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header><SessionID>58DEE6006A88A967E89A</SessionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body><M1:SetGuestAccessEnabled xmlns:M1="urn:NETGEAR-ROUTER:service:WLANConfiguration:1"><NewGuestAccessEnabled>0</NewGuestAccessEnabled></M1:SetGuestAccessEnabled>
</SOAP-ENV:Body></SOAP-ENV:Envelope>HTTP/1.0 200 OK
CONTENT-LENGTH: 509
CONTENT-TYPE: text/xml; charset="utf-8"
SERVER: Linux UPnP/1.0

Разница заключается в следующем: 58DEE6006A88A967E89A

как я могу добавить его в запрос?

0 ответов

Другие вопросы по тегам