[ruby-list:50385] [質問]ruby SOAP? DLNA機器制御 Action名内の '_' Underscore が取り除かれる
From:
<yamataka@...08.itscom.net>
Date:
2016-09-09 07:23:52 UTC
List:
ruby-list #50385
山口と申します。
Windows 8.1
c:\yama\bin\UPnP>ruby --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32]
の環境で、
Gem “easy_upnp” を用いて、Ruby scriptにて、DLNA機器の制御を試みています。
c:\yama\bin\UPnP>gem dependency easy_upnp
Gem easy_upnp-1.1.10
nokogiri (~> 1.6)
rake (>= 0)
savon (~> 2.11)
から、
“easy_upnp” は、savon, nokogiri を内部で利用しています。
DLNA機器が提供している X_Startという機能(Action)を、Ruby Scriptから呼び
出し(*)た際に、
(*)session_id = @group_service.X_Start(GroupMode: 'GROUP',
GroupName: 'Ruby',
SlaveList: L_BZH_UUID,
CodecType: '48',
CodecBitrate: '0')
Ruby scripでは、DLNA機器よりErrorが返ってくるので、
正常に処理されるDevice Spy(Intel UPnP Tool)と、
Wiresharkを用いてRuby,Device Spy双方の送信パケットを、Capture したところ、
Ruby scriptでは、Request時のXML Body 内において、
X_Start と記述されるべきところが、’_’ underscore が取り除かれ、XStartと
記述され送信されていました
そのため、DLNA機器側がそのような機能(Action)がないため、Errorが返ってき
ます。
‘_’underscoreがどこで取り除かれているのか、ruby –rdebug にて追ってみまし
たが、原因を追究できず…
送信時のXMLを作成する際にどこかで、’_’ が取り除かれていると推測していま
す。
SOAPに当たる部分かと推測します。
もし、詳しい方がいらっしゃれば、なぜ、'_' underscoreが取り除かれてしまう
のか、その対処方法を
ご教示いただけないでしょうか?
よろしくお願いします。