Beste allemaal,
Graag zou ik een POST commando (HTTP) uit een bepaald PHP-script (zie hieronder) uit laten voeren in m'n VB.NET applicatie zodat ik niet ook nog iets van een webserver (mét PHP) nodig heb...
Dit is de (PHP) code voor het POST commando:
In PHP werkt dit perfect, maar ik krijg het in VB.NET maar niet werkend
(van vanmorgen vroeg tot nu.. grrrr
)
Mijn stukje code in VB.NET is als volgt:
Ik weet niet goed hoe ik de "postdata" netjes in een String krijg, dus ik heb dat stukje in een textfile (SetQueue.txt) gezet zodat het daaruit wordt gehaald. De inhoud van SetQueue.txt is:
Wat gaat hier verkeerd?
Alvast thanks voor 't meedenken
Graag zou ik een POST commando (HTTP) uit een bepaald PHP-script (zie hieronder) uit laten voeren in m'n VB.NET applicatie zodat ik niet ook nog iets van een webserver (mét PHP) nodig heb...
Dit is de (PHP) code voor het POST commando:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public function SetQueue($queue) { $content='POST /MediaRenderer/AVTransport/Control HTTP/1.1 CONNECTION: close HOST: '.$this->address.':1400 CONTENT-LENGTH: '.(342+strlen(htmlspecialchars($queue))).' CONTENT-TYPE: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI" <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>'.htmlspecialchars($queue).'</CurrentURI><CurrentURIMetaData></CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>'; $this->sendPacket($content); } |
In PHP werkt dit perfect, maar ik krijg het in VB.NET maar niet werkend


Mijn stukje code in VB.NET is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| Private Sub SetQueue() Try Dim s As HttpWebRequest Dim postdata As String s = HttpWebRequest.Create("http://192.168.1.216:1400/MediaRenderer/AVTransport/Control") Dim effe As String = "x-rincon-queue:RINCON_00:0E:58:A4:4B:68:01400#0" postdata = My.Computer.FileSystem.ReadAllText("SetQueue.txt") Dim bArray As Byte() = Encoding.UTF8.GetBytes(postdata) s.Host = "192.168.1.216:1400" s.Headers.Add("SOAPACTION", "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI") s.Method = "POST" s.ContentType = "text/xml" s.ContentLength = bArray.Length Using stream = s.GetRequestStream() stream.Write(bArray, 0, bArray.Length) End Using Dim result = s.GetResponse() Catch ex As Exception End Try End Sub |
Ik weet niet goed hoe ik de "postdata" netjes in een String krijg, dus ik heb dat stukje in een textfile (SetQueue.txt) gezet zodat het daaruit wordt gehaald. De inhoud van SetQueue.txt is:
Zodra ik deze code uitvoer hangt hij (volgens mij) vast bij:<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>x-rincon-queue:RINCON_000E58A44B6801400#0</CurrentURI><CurrentURIMetaData></CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>
code:
1
2
3
| Using stream = s.GetRequestStream() stream.Write(bArray, 0, bArray.Length) End Using |
Wat gaat hier verkeerd?
Alvast thanks voor 't meedenken