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.Click, AddressOf BtnClick
28:     End Sub
29: 
30:     Private Sub BtnClick(ByVal sender As Object, ByVal 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.AsyncState, HttpWebRequest)
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.AsyncState, HttpWebRequest)
52:       Dim response As HttpWebResponse = DirectCast(request.EndGetResponse(result), HttpWebResponse)
53:       syncContext.Post(AddressOf UseResponse, response)
54:     End Sub
55: 
56:     Public Sub UseResponse(ByVal state As Object)
57:       Try
58:         Dim response As HttpWebResponse = DirectCast(state, HttpWebResponse)
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_start
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:   php_end
87: 
88:   -->
89: 
90: </UserControl>

[zum Anfang]

<Auswahl/>