Я вызываю API, размещенный на сервере Apache, для публикации данных. Я использую HttpWebRequest для выполнения POST в С#.
API имеет как обычный HTTP, так и защищенный уровень (HTTPS) PORT на сервере. Когда я вызываю URL-адрес HTTP, он работает отлично. Однако, когда я вызываю HTTPS, он дает мне исключение тайм-аута (в функции GetRequestStream()). Какие-нибудь идеи? Я использую VS 2010,.Net framework 3.5 и С#. Вот кодовый блок:
string json_value = jsonSerializer.Serialize(data);
HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create("https://server-url-xxxx.com");
request.Method = "POST";
request.ProtocolVersion = System.Net.HttpVersion.Version10;
request.ContentType = "application/x-www-form-urlencoded";
byte[] buffer = Encoding.ASCII.GetBytes(json_value);
request.ContentLength = buffer.Length;
System.IO.Stream reqStream = request.GetRequestStream();
reqStream.Write(buffer, 0, buffer.Length);
reqStream.Close();
EDIT: Консольная программа, предложенная Питером, отлично работает. Но когда я добавляю данные (в формате JSON), которые должны быть отправлены в API, это исключает исключение из строя. Вот код, который я добавляю к консольному приложению, и он выдает ошибку.
byte[] buffer = Encoding.ASCII.GetBytes(json_value);
request.ContentLength = buffer.Length;