Нужно отправить POST запрос и получить ответ от сервера, сделал след образом:
var bytePost = Encoding.ASCII.GetBytes(post);
var client = new TcpClient {ReceiveTimeout = context.MaxSearchTimeOut.Seconds};
client.Connect(BaseAddress, 80);
var stream = client.GetStream();
stream.Write(bytePost, 0, bytePost.Length);
var responseData = new byte[4096];
var strWesponse = string.Empty;
var bytes = stream.Read(responseData, 0, responseData.Length);
strWesponse = Encoding.ASCII.GetString(responseData, 0, bytes);
stream.Close();
client.Close();
И столкнулся с проблемой, что бы это работало адрес должен быть следующего вида: BaseAddress = "blog.site.ru"
, а у меня он след вида: BaseAddress = "blog.site.ru/online/page.php"
.
Поиск решения проблемы подсказал что необходимо использовать WebClient вместо TcpClient.
Пытался сделать следующим образом, но webResponse
всегда пуст.
var bytePost = Encoding.ASCII.GetBytes(post);
using (var webClient = new WebClient())
{
var webResponse = webClient.UploadData(BaseAddress, "POST", bytePost);
var strWebResponse = Encoding.ASCII.GetString(webResponse);
}
Что я делаю не так и как мне исправить данную проблему?
UPD.
Пытаюсь сделать через HttpClient, но ответ всегда пуст.
var bytePost = Encoding.ASCII.GetBytes(post);
using (var httpClient = new HttpClient {Timeout = context.MaxSearchTimeOut})
{
var httpResponse = await httpClient.PostAsync(BaseAddress, new ByteArrayContent(bytePost));
httpResponse.EnsureSuccessStatusCode();
var httpByteContent = await httpResponse.Content.ReadAsByteArrayAsync();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Столкнулся с весьма непонятной ситуациейАктиватор не видит подходящих конструкторов, хотя они есть в классе, и они отображаются при логировании
Всем доброго времени суток! Нужна помощь, сам не успеваю, да и знаний нетНет, мне не нужен код и полностью написанная программа - хотелось бы узнать,...
У меня есть коллекция Book, в которой содержаться список книгЯ создаю бинарный файл и записываю в него эти данные