Primero, necesitas enviar una solicitud utilizando PUT, no POST. En cuanto a los encabezados, debes pasar estos encabezados.
-H “Authorization: Bearer ############”
-H “Content-Type: multipart/form-data”
Buenas, claro pero no estamos llamando directo a la Api de aspose, si no que generamos una Api intermedia que se conecta por C# tal cual como muestro en la imagen, te adjunto el código. Vos decís que si o si el method es PUT desde acá?
public class ConvertController : ControllerBase
{
[EnableCors]
[HttpPost(“convertDocument”)]
//[Consumes(“multipart/form-data”)]
public async Task<IActionResult> Post(IFormFile rutaDocument, string ClientId, string ClientSecret)
{
try
{
var config = new Configuration
{
ClientId = ClientId,
ClientSecret = ClientSecret
};
var wordsApi = new WordsApi(config);
using (var stream = rutaDocument.OpenReadStream())
{
var request = new ConvertDocumentRequest(stream, "html", null, rutaDocument.Name);
var convert = await wordsApi.ConvertDocument(request);
Console.Write(stream.Length);
byte[] buffer = new byte[convert.Length];
var result = convert.Read(buffer, 0, buffer.Length);
string htmlContent = System.Text.Encoding.UTF8.GetString(buffer);
//Console.WriteLine("ok");
//Console.WriteLine("Contenido Docx:" + htmlContent);
return Ok(htmlContent);
}
}
catch (Exception err)
{
return BadRequest(err.Message);
}
}
}
Después desde SharePoint consumo la api intermedia, pero el inconveniente se produce directamente desde Postman, con los documentos .Doc funcionan, pero con el Docx me da ese error.
Probando de forma local funciona perfecto para ambos tipos de documentos.
Te adjunto tambien lo que me arroja con metodo PUT que recien lo cambie desde la api intermedia y lo ejecute desde postman:
Lo siento, pero no puedo entender qué método específico estás llamando en la API desde Postman, porque la dirección está borrosa, ¿funciona el código C# que proporcionaste? En caso afirmativo, describa específicamente qué método API no funciona como esperaba.
Te comento desde SharePoint directamente no podiamos consumir la API de Aspose, por problemas de CORS, por lo tanto hicimos una API Intermedia para permitir los dominios diferentes. La Api intermedia funciona correctamente local (Debug - El codigo c# funciona correctamente) pero esta misma se encuentra publicada y al consumirla me arroja ese inconveniente de documento corrupto.
los parámetros que envío son ClientId, ClientSecret y rutaDocument que es el archivo docx o doc.
Los documentos doc no me arroja error de archivo corrupto, pero me los convierte mal, eso entiendo que es un ajuste a realizar. Pero los documentos Docx directamente me arroja corruptos.
Veo. ¿Podría compartir un documento de muestra que no funcione de su lado? Lo intentaré por mi parte; tal vez sea un problema relacionado con el documento.
@yaroslaw.ekimov Buen dia!! quería saber si habias podido revisar el documento que te pase y si pudiste ejecutar alguna prueba? Nos es de mucha ayuda porque estamos queriendo comprar aspose.words.cloud, ya Errepar cuenta con Aspose.Words y queriamos mejorarlo.
Sí, ejecuté las pruebas con su documento y todo funcionó sin errores. ¿Es posible que se pierda parte del archivo al enviarlo? ¿Está disponible su API intermedia externamente? ¿Puedo tomar la dirección de sus capturas de pantalla y tratar de enviar una solicitud a través de Postman?
Excelente, que por lo menos el documento no es. Si tal cual por favor realiza las pruebas que necesites a esa API Externa que es la api intermedia, me serviría de mucho que realices la prueba desde postman.
Excelente, que por lo menos el documento no es. Si tal cual por favor realiza las pruebas que necesites a esa API Externa que es la api intermedia, me serviria de mucho que realices la prueba desde postman.