Я уже настроил настройки на клиенте и сервере, но проблема продолжается. Мне нужны инструкции о том, что может быть причиной этой проблемы и как ее устранить.
Клиент C#
Код: Выделить всё
private async Task SendRequest(string xmlKey, string diretorioPdf, string contentXml)
{
client.DefaultRequestHeaders.Add("xmlKey", xmlKey);
client.DefaultRequestHeaders.Add("diretorioPdf", diretorioPdf);
var content = new StringContent($"{{\"content\":\"{Convert.ToBase64String(Encoding.UTF8.GetBytes(contentXml))}\"}}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://localhost:3000/conversao.php", content);
response.EnsureSuccessStatusCode();
}
Сервер декодирует содержимое Base64 и обрабатывает XML. Он проверяет необходимые заголовки и генерирует PDF-файл.
Код: Выделить всё
$headers = getallheaders();
if (!isset($headers['xmlKey']) || !isset($headers['diretorioPdf'])) {
header('Content-Type: application/json');
echo json_encode(["status" => "Missing headers"]);
exit();
}
$jsonData = file_get_contents('php://input');
$data = json_decode($jsonData, true);
if (!isset($data['content'])) {
echo "Missing 'content' field.";
exit();
}
$xml = base64_decode($data['content']);
// Processes the XML and generates the PDF...
Снизил порог конкуренции в клиенте C#
Код: Выделить всё
private readonly SemaphoreSlim semaphore = new SemaphoreSlim(10); // Maxde 10 threads
После запуска первые 78 файлов XML преобразуются, а затем возникает эта ошибка:
Код: Выделить всё
The response status code does not indicate success: 400 (Bad Request).
in System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
in Cocal.Src.Xml.TransformarEmPDF.ConversorPDF.d__19.MoveNext() in C:\Users\sserg\source\repos\Cocal\Cocal\Src\Xml\TransformarEmPDF\ConversorPDF.cs:linha 155
--- End stack trace of the previous location where the exception was thrown ---
in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
in System.Runtime.CompilerServices.TaskAwaiter.GetResult()
in Cocal.Src.Xml.TransformarEmPDF.ConversorPDF.
d__18.MoveNext() in C:\Users\sserg\source\repos\Cocal\Cocal\Src\Xml\TransformarEmPDF\ConversorPDF.cs:linha 123
in System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
in Cocal.Src.Xml.TransformarEmPDF.ConversorPDF.d__19.MoveNext() na C:\Users\sserg\source\repos\Cocal\Coc
Версия PHP
PHP 8.2.12 (cli) (создан: 24 октября 2023 г., 21:15:15) (ZTS Visual C++ 2019 x64)
Авторские права (c) The PHP Group
Zend Engine v4.2.12, Авторские права (c) Zend Technologies
Даже при выполнении всего этого XML-файлы были преобразованы из 78 файлов в 78 файлы, а затем произошла ошибка.
Можете ли вы помочь мне понять, что происходит? Я не смог решить эту проблему с помощью генеративного ИИ.
Подробнее здесь: https://stackoverflow.com/questions/792 ... nd-c-sharp