Rucaptcha.com просит отправить base64-форму в таком формате:
<form method="post" action="http://rucaptcha.com/in.php">
<input type="hidden" name="method" value="base64">
Ваш ключ:
<input type="text" name="key" value="YOUR_APIKEY">
Тело файла капчи в формате base64:
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Загрузить и получить ID">
</form>
У меня есть мой ApiKey и картинка в BASE64. Как мне отправить это на сервер?
Вообще, не легче использовать библиотеку для этого, к примеру эту? Хотя... она в этом случае лишняя.
Ну а так, код примерно следующий:
public async Task<string> SendRequest(CancellationToken ct)
{
string data;
var baseAddress = new Uri("http://rucaptcha.com"); //Базовый адрес
var url = "/in.php"; //Нужная нам страница, на которую пойдет запрос
using (var client = new HttpClient { BaseAddress = baseAddress })
{
var content = new FormUrlEncodedContent(new[] //для удобства можно использовать Dictionary<string, string>. Тогда тело будет ещё короче ["key"] = "YOUR_APIKEY", ["body"] = "BASE64_FILE"
{
new KeyValuePair<string, string>("key", "YOUR_APIKEY"),
new KeyValuePair<string, string>("body", "BASE64_FILE")
}); //Наше тело, которое при помощи FormUrlEncodedContent закодируется в нужное нам "тело".
var result = await client.PostAsync(url, content, ct); //Отправляем на нужную страницу POST запрос с нашем телом, также тут используется CancellationToken для грамотной отмены async методов.
var bytes = await result.Content.ReadAsByteArrayAsync();
Encoding encoding = Encoding.GetEncoding("utf-8");
data = encoding.GetString(bytes, 0, bytes.Length); //Все эти три строки добавлены тут для того, что бы получать данные в нужной нам кодировке (некоторые сервера к примеру выдают в неверной кодировке и может выдать ошибку). Вообще можно все 3 строки заменить на одну:
//data = await result.Content.ReadAsStringAsync(); Тогда кодировка будет той, что выдает сервер.
result.EnsureSuccessStatusCode();
}
return data;
}
Думаю по комментариям разберётесь. Тут вроде все довольно просто.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть ли способ определить заранее с какой сторони плитка от плеера?
Есть два консольных приложения, одно из которых написано на другом языке и тд
У меня есть массив с коллекцией, а так же много textBoxов, которые должны использовать эту коллекцию в AutoCompleteCustomSource, при этом все textBoxы находятся...
пытаюсь отправить несколько картинок с андроида через http post запрос