Revision aba9e6d9 trunk/Pithos.Client.WPF/Shell/FeedbackViewModel.cs
b/trunk/Pithos.Client.WPF/Shell/FeedbackViewModel.cs | ||
---|---|---|
4 | 4 |
// </copyright> |
5 | 5 |
// ----------------------------------------------------------------------- |
6 | 6 |
|
7 |
using System.Collections.Specialized; |
|
7 | 8 |
using System.ComponentModel.Composition; |
8 | 9 |
using System.Diagnostics; |
9 | 10 |
using System.Diagnostics.Contracts; |
... | ... | |
95 | 96 |
TryClose(); |
96 | 97 |
} |
97 | 98 |
|
98 |
private async void PostForm(string formUrl, string token,Dictionary<string, string> fields)
|
|
99 |
private void PostForm(string formUrl, string token,Dictionary<string, string> fields) |
|
99 | 100 |
{ |
100 | 101 |
|
101 | 102 |
if (String.IsNullOrWhiteSpace(formUrl)) |
... | ... | |
106 | 107 |
throw new ArgumentNullException("fields"); |
107 | 108 |
Contract.EndContractBlock(); |
108 | 109 |
|
109 |
var request = WebRequest.Create(formUrl); |
|
110 |
request.Method = "POST"; |
|
111 |
request.Headers.Add("X-Auth-Token",token); |
|
112 | 110 |
|
111 |
var client = new WebClient(); |
|
112 |
client.Headers.Add("X-Auth-Token", token); |
|
113 | 113 |
|
114 |
var builder = new StringBuilder(); |
|
115 |
foreach (var field in fields) |
|
116 |
{ |
|
117 |
builder.AppendFormat("{0}={1}&", field.Key, Uri.EscapeDataString(field.Value)); |
|
118 |
} |
|
119 |
|
|
120 |
var postData = builder.ToString().TrimEnd('&'); |
|
121 |
var byteArray = Encoding.UTF8.GetBytes(postData); |
|
122 |
|
|
123 |
request.ContentType = "application/x-www-form-urlencoded"; |
|
124 |
request.ContentLength = byteArray.Length; |
|
125 |
using (var stream = request.GetRequestStream()) |
|
114 |
var values=new NameValueCollection(); |
|
115 |
fields.Apply(field => values.Add(field.Key, Uri.EscapeDataString(field.Value))); |
|
116 |
try |
|
126 | 117 |
{ |
127 |
stream.Write(byteArray, 0, byteArray.Length);
|
|
118 |
client.UploadValues(formUrl, values);
|
|
128 | 119 |
} |
129 |
|
|
130 |
|
|
131 |
// Get the response. |
|
132 |
var response = await request.GetResponseAsync(); |
|
133 |
|
|
134 |
|
|
135 |
var webResponse = ((HttpWebResponse)response); |
|
136 |
var result=webResponse.StatusCode; |
|
137 |
if (result != HttpStatusCode.OK) |
|
120 |
catch (WebException exc) |
|
138 | 121 |
{ |
139 |
// Get the stream containing content returned by the server. |
|
140 |
using (var responseStream = webResponse.GetResponseStream()) |
|
141 |
using (var reader = new StreamReader(responseStream)) |
|
142 |
{ |
|
143 |
var responseFromServer = reader.ReadToEnd(); |
|
144 |
Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}\r\n{2}",result,webResponse.StatusDescription, responseFromServer); |
|
145 |
} |
|
122 |
Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}", exc.Status,exc.Message); |
|
146 | 123 |
} |
147 |
response.Close(); |
|
148 | 124 |
} |
149 | 125 |
} |
150 | 126 |
} |
Also available in: Unified diff