mirror of
https://github.com/openbullet/openbullet.git
synced 2023-10-21 07:33:42 -05:00
Fixed encoding problem for large images in TwoCaptcha and RuCaptcha classes.
This commit is contained in:
@@ -186,5 +186,19 @@ namespace RuriLib.CaptchaServices
|
||||
.Result.Content.ReadAsStreamAsync())
|
||||
.Result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// URL encodes a long string.
|
||||
/// </summary>
|
||||
/// <param name="longString">The string to encode</param>
|
||||
/// <returns>The encoded string</returns>
|
||||
protected string EscapeLongString(string longString)
|
||||
{
|
||||
var escaped = "";
|
||||
int maxChunkSize = 200;
|
||||
for (int i = 0; i < longString.Length; i += maxChunkSize)
|
||||
escaped += Uri.EscapeDataString(longString.Substring(i, Math.Min(maxChunkSize, longString.Length - i)));
|
||||
return escaped;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace RuriLib.CaptchaServices
|
||||
if (Timeout > 0) client.Timeout = Timeout;
|
||||
client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
|
||||
var response = client.UploadString("http://rucaptcha.com/in.php",
|
||||
$"key={ApiKey}&method=base64®sense=1&body={Uri.EscapeDataString(GetBase64(bitmap, ImageFormat.Bmp))}");
|
||||
$"key={ApiKey}&method=base64®sense=1&body={EscapeLongString(GetBase64(bitmap, ImageFormat.Bmp))}");
|
||||
if (!response.StartsWith("OK")) throw new Exception(response);
|
||||
TaskId = response.Split('|')[1];
|
||||
Status = CaptchaStatus.Processing;
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace RuriLib.CaptchaServices
|
||||
if (Timeout > 0) client.Timeout = Timeout;
|
||||
client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
|
||||
var response = client.UploadString("http://2captcha.com/in.php",
|
||||
$"key={ApiKey}&method=base64®sense=1&body={Uri.EscapeDataString(GetBase64(bitmap, ImageFormat.Bmp))}");
|
||||
$"key={ApiKey}&method=base64®sense=1&body={EscapeLongString(GetBase64(bitmap, ImageFormat.Bmp))}");
|
||||
if (!response.StartsWith("OK")) throw new Exception(response);
|
||||
TaskId = response.Split('|')[1];
|
||||
Status = CaptchaStatus.Processing;
|
||||
|
||||
Reference in New Issue
Block a user