Я вызываю 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();
РЕДАКТИРОВАТЬ: Консольная программа, предложенная Петром, прекрасно работает. Но когда я добавляю данные (в формате JSON), которые необходимо опубликовать в API, возникает исключение, связанное с тайм-аутом операции. Вот код, который я добавляю в консольное приложение, и он выдает ошибку.
byte[] buffer = Encoding.ASCII.GetBytes(json_value);
request.ContentLength = buffer.Length;