Silverlight/XAML – Learning by Coding

[ sl2_httpwebrequest.xaml --> Grafik anzeigen ]

 1: <?xml version="1.0" encoding="UTF-8"?>
 2: <!-- coded by Thomas Meinike 08/08 -->
 3: <UserControl x:Class="sl2_httpwebrequest.Page"
 4:   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
 5:   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
 6:   Width="800" Height="600">
 7: 
 8:   <Canvas>
 9:     <Button Canvas.Left="30" Canvas.Top="30" Content="POST-Request ..." Padding="10"
10:       Cursor="Hand" x:Name="aktion"/>
11:     <TextBlock Canvas.Left="150" Canvas.Top="40" Text="..." x:Name="ergebnis"/>
12:   </Canvas>
13: 
14: 
15:   <!-- // zusätzlich verwendeter VB.NET-Code in Page.xaml.vb:
16: 
17:   Imports System.IO
18:   Imports System.Net
19:   Imports System.Threading
20: 
21:   Partial Public Class Page
22:     Inherits UserControl
23:     Public Shared syncContext As SynchronizationContext = New SynchronizationContext()
24: 
25:     Public Sub New()
26:       InitializeComponent()
27:       AddHandler aktion.ClickAddressOf BtnClick
28:     End Sub
29: 
30:     Private Sub BtnClick(ByVal sender As ObjectByVal e As System.Windows.RoutedEventArgs)
31:       syncContext SynchronizationContext.Current
32:       Dim address As Uri = New Uri("http://example.net/postwebreq.php"UriKind.Absolute)
33:       Dim request As HttpWebRequest DirectCast(WebRequest.Create(address), HttpWebRequest)
34:       request.Method "POST"
35:       request.ContentType "application/x-www-form-urlencoded; charset=UTF-8"
36:       request.BeginGetRequestStream(New AsyncCallback(AddressOf HandleRequest), request)
37:     End Sub
38: 
39:     Public Sub HandleRequest(ByVal result As IAsyncResult)
40:       Dim request As HttpWebRequest DirectCast(result.AsyncStateHttpWebRequest)
41:       Dim requeststream As Stream request.EndGetRequestStream(result)
42:       Dim requestwriter As New StreamWriter(requeststream)
43:       requestwriter.Write("param1=wert1" "&")
44:       requestwriter.Write("param2=wert2")
45:       requestwriter.Flush()
46:       requestwriter.Close()
47:       request.BeginGetResponse(New AsyncCallback(AddressOf HandleResponse), request)
48:     End Sub
49: 
50:     Public Sub HandleResponse(ByVal result As IAsyncResult)
51:       Dim request As HttpWebRequest DirectCast(result.AsyncStateHttpWebRequest)
52:       Dim response As HttpWebResponse DirectCast(request.EndGetResponse(result), HttpWebResponse)
53:       syncContext.Post(AddressOf UseResponseresponse)
54:     End Sub
55: 
56:     Public Sub UseResponse(ByVal state As Object)
57:       Try
58:         Dim response As HttpWebResponse DirectCast(stateHttpWebResponse)
59:         If response.StatusCode HttpStatusCode.OK Then
60:           Dim responsestream As Stream response.GetResponseStream()
61:           Dim responsereader As New StreamReader(responsestream)
62:           Dim responsestring As String responsereader.ReadToEnd()
63:           responsereader.Close()
64:           response.Close()
65:           ergebnis.Text responsestring
66:         End If
67:       Catch e As Exception
68:         ergebnis.Text e.Message
69:       End Try
70:     End Sub
71: 
72:   End Class
73: 
74:   -->
75: 
76: 
77:   <!-- // zusätzlich verwendeter PHP-Code in postwebreq.php:
78: 
79:   <?php
80:     header("Content-Type: text/plain; charset=UTF-8");
81: 
82:     $param1=htmlspecialchars($_POST["param1"]);
83:     $param2=htmlspecialchars($_POST["param2"]);
84: 
85:     print "Es wurden $param1 und $param2 gesendet.";
86:   ?>
87: 
88:   -->
89: 
90: </UserControl>

[zum Anfang]