private XmlDocument CreateSessionId(string uri, Dictionary<string, object> dict)
{
var xmlDoc = new XmlDocument();
var postData = HttpUtility.ParseQueryString(string.Empty);
foreach (var pair in dict)
postData.Add(CleanupKey(pair.Key), pair.Value.ToString());
byte[] postBytes = Encoding.UTF8.GetBytes(postData.ToString());
var request = (HttpWebRequest)WebRequest.Create(uri);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length;
request.Headers.Add("X-TB-PARTNER-AUTH", string.Format("{0}:{1}", ApiKey, Secret));
var requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
using (var response = (HttpWebResponse)request.GetResponse())
if (response.StatusCode == HttpStatusCode.OK)
using (var reader = XmlReader.Create(response.GetResponseStream(), new XmlReaderSettings { CloseInput = true }))
xmlDoc.Load(reader);
return xmlDoc;
}