// </copyright>
// -----------------------------------------------------------------------
+using System.Collections.Specialized;
using System.ComponentModel.Composition;
using System.Diagnostics;
using System.Diagnostics.Contracts;
TryClose();
}
- private async void PostForm(string formUrl, string token,Dictionary<string, string> fields)
+ private void PostForm(string formUrl, string token,Dictionary<string, string> fields)
{
if (String.IsNullOrWhiteSpace(formUrl))
throw new ArgumentNullException("fields");
Contract.EndContractBlock();
- var request = WebRequest.Create(formUrl);
- request.Method = "POST";
- request.Headers.Add("X-Auth-Token",token);
+ var client = new WebClient();
+ client.Headers.Add("X-Auth-Token", token);
- var builder = new StringBuilder();
- foreach (var field in fields)
- {
- builder.AppendFormat("{0}={1}&", field.Key, Uri.EscapeDataString(field.Value));
- }
-
- var postData = builder.ToString().TrimEnd('&');
- var byteArray = Encoding.UTF8.GetBytes(postData);
-
- request.ContentType = "application/x-www-form-urlencoded";
- request.ContentLength = byteArray.Length;
- using (var stream = request.GetRequestStream())
+ var values=new NameValueCollection();
+ fields.Apply(field => values.Add(field.Key, Uri.EscapeDataString(field.Value)));
+ try
{
- stream.Write(byteArray, 0, byteArray.Length);
+ client.UploadValues(formUrl, values);
}
-
-
- // Get the response.
- var response = await request.GetResponseAsync();
-
-
- var webResponse = ((HttpWebResponse)response);
- var result=webResponse.StatusCode;
- if (result != HttpStatusCode.OK)
+ catch (WebException exc)
{
- // Get the stream containing content returned by the server.
- using (var responseStream = webResponse.GetResponseStream())
- using (var reader = new StreamReader(responseStream))
- {
- var responseFromServer = reader.ReadToEnd();
- Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}\r\n{2}",result,webResponse.StatusDescription, responseFromServer);
- }
+ Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}", exc.Status,exc.Message);
}
- response.Close();
}
}
}