Неправильная подпись при попытке перевода файла в curl на C #

Я пытаюсь загрузить файл с Keep2Share API

В документации есть реализация Php, а именно:

$data = $this->getUploadFormData($parent_id, $preferred_node);
$curl = curl_init();
$postFields = $data['form_data'];

$postFields[$data['file_field']] = new CURLFile($file);

curl_setopt_array($curl, [
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $data['form_action'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postFields,
]);

$response = curl_exec($curl);
if ($this->verbose) {
echo '<<', $response, PHP_EOL;
}
return json_decode($response, true);

getUploadFormData метод вернуть JSON со следующими данными

status: [success]
status_code: [200,400]
form_action: string
file_field: string
form_data: [
params: string
signature: string
]

Но мне нужно перевести его на C #, я пытаюсь следующее

//dat is a object with getUploadForm data
var dat = await this.GetUploadFormData();

HttpContent stringContent = new StringContent(dat.form_data.signature);
HttpContent bytesContent = new ByteArrayContent(System.IO.File.ReadAllBytes(filename));

using (var client = new HttpClient())

using (var formData = new MultipartFormDataContent())
{
formData.Add(stringContent, "signature", "signature");
formData.Add(bytesContent, "file", "file");
var response = await client.PostAsync(dat.form_action, formData);

using (var reader = new StreamReader(await response.Content.ReadAsStreamAsync()))
{
Console.WriteLine(await reader.ReadToEndAsync());
}

return await response.Content.ReadAsStreamAsync();
}

Но я получаю

{«name»: «Bad Request», «message»: «Неправильная подпись. IP
. 1 ** 58. * 54,213» , «код»: 0, «Статус»: 400}

Я почти уверен, что моя проблема в том, что я не передаю параметр подписи, как это должно быть

это тот случай?

что я делаю не так?

Спасибо!

РЕДАКТИРОВАТЬ

Пример объекта getUploadFormData должен быть

   "status":"success",
"code":200,
"form_action":"http://file-api-27.keep2share.cc:8000/upload",
"file_field":"file",
"form_data":{
"ajax":true,
"_params":null,
"signature":"2eda59a25137a78ef05513c60182cebe9972d9d1b80d9e643e0a8104dcdf42f59cfbc76680c7caf2d93e090c74ebdcf19da664c53e9da14992d604469a634887"}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]