InitializeComponent(); // Create a request object HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://localhost/test.php")); OpenFileDialog dlg = new OpenFileDialog(); if (dlg.ShowDialog().Value) { request.PostMultiPartAsync(new Dictionary { { "x", "1" }, { "y", dlg.File } }, new AsyncCallback(asyncResult => { HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream); this.Dispatcher.BeginInvoke(delegate { output.Text = reader.ReadToEnd(); response.Close(); }); })); }