Как отправить изображение base64 v ie HTTP-запрос? - PullRequest
0 голосов
/ 04 августа 2020

Я создаю приложение, которое отправляет изображение на веб-сервер, и у меня возникла проблема с кодом: Вот пример с веб-сайта:

    Get your API key from your account settings page. Each user is given a unique authentication token, we call it API key. It's a 32-characters string that looks like:2abc234de56fab7c89012d34e56f6789
This key will be used for all your requests to our server.
Submit a HTTP POST request to our API URL: http://azcaptcha.com/in.php with parameters corresponding to the type of your captcha.
Server will return captcha ID or an error code if something went wrong.
Make a timeout: 20 seconds for ReCaptcha, 5 seconds for other types of captchas.
Submit a HTTP GET request to our API URL: http://azcaptcha.com/res.php to get the result.
If captha is already solved server will return the answer in format corresponding to the type of your captcha.
By default answers are returned as plain text like: OK|Your answer. But answer can also be returned as JSON {"status":1,"request":"TEXT"} if json parameter is used.
If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds.
If something went wrong server will return an error code.
          

и вот образец формы Base64

<form method="post" action="http://azcaptcha.com/in.php">
<input type="hidden" name="method" value="base64">
Your key:
<input type="text" name="key" value="YOUR_APIKEY">
The CAPTCHA file body in base64 format:
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Upload and get the ID">
</form> 

, но когда я попытался отправить его, я получаю сообщение об ошибке с сервера, что файл base64 не читается, но если я отправлю его через страницу HTML с кодом из образца base64, он работает, так что вот и мой C# код :

byte[] imageArray = System.IO.File.ReadAllBytes(@"C:\Users\Cvetan Tokov\Desktop\New folder\rep.png");
            string base64ImageRepresentation = Convert.ToBase64String(imageArray);
            richTextBox1.Text = base64ImageRepresentation;
           
             string key = "MY API KEY";
             ASCIIEncoding encoding = new ASCIIEncoding();
             string postData = richTextBox1.Text;

             byte[] data = encoding.GetBytes(postData);
             WebRequest request = WebRequest.Create("http://azcaptcha.com/in.php?key=MY API KEY&method=base64");
             request.Method = "post";
            
             request.ContentType = "text/html; charset=windows-1252";

            request.ContentLength = data.Length;

             using (Stream stream = request.GetRequestStream())
             {
                 stream.Write(data, 0, data.Length);
             }

этот код не отправил строку base64 в правильном порядке для чтения с сервера, может ли кто-нибудь помочь мне создать форму из примера в C#.

Спасибо за Аванс

1 Ответ

0 голосов
/ 04 августа 2020

Советую воспользоваться веб-сниффером. Например, HTTP Analyzer. Включите его, отправьте запрос через браузер и через свое приложение, а затем сравните, в чем разница - в основном смотрите вкладки «Заголовки» и «Данные публикации».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...