Мне нужно создать запрос multipart / form-data для API распознавания капчи. На странице описания API я нашел шаблон запроса:
<form method="post" action="https://captchasiteapi.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Your key:
<input type="text" name="key" value="YOUR_APIKEY">
Captcha file:
<input type="file" name="file">
<input type="submit" value="Upload and get ID">
/<form>
Я написал этот метод на основе HttpClient:
private async Task<string> UploadRequestAsync(string url, string filePath, string profileApiKey)
{
var client = new HttpClient();
var formData = new MultipartFormDataContent();
var filestream = new FileStream(filePath, FileMode.Open);
var fileName = Path.GetFileName(filePath);
formData.Add(new StringContent("post"), "hidden", "method");
formData.Add(new StringContent(profileApiKey), "key");
formData.Add(new StreamContent(filestream), "file", fileName);
formData.Add(new StringContent("Upload and get ID"), "submit");
var response = await client.PostAsync(url, formData);
if (!response.IsSuccessStatusCode){
return null;
}
return await response.Content.ReadAsStringAsync();
}
Но на самом деле не знаю, как создать <input type="hidden" name="method" value="post">
строку. Как я могу создать 3 значения в форме? Результатом API является строка типа «OK | CaptchaValue», поэтому Task<string>
должно быть в порядке.