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