es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función OutputDataReceived de C# no funciona con curl.

A continuación se muestra el código para utilizar OutputDataReceived para capturar información detallada de curl.

No se puede capturar información de esta manera. ¿Qué está mal?

var command = "curl.exe -vs -o test.html https:\\www.google.com";
var procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
var proc = new Process();
proc.EnableRaisingEvents = true;
proc.OutputDataReceived += (s, e) => { if(!string.IsNullOrEmpty(e.Data)) textBoxLog.AppendText(e.Data); };
proc.StartInfo = procStartInfo;
proc.Start();
proc.BeginOutputReadLine();
proc.WaitForExit();
proc.Close();
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema es que el código utiliza RedirectStandardOutput para capturar los datos de curl, pero la salida real de curl se envía al flujo de error estándar en lugar del flujo de salida estándar. Para capturar información detallada de curl, deberías utilizar RedirectStandardError en lugar de RedirectStandardOutput. Simplemente reemplaza la línea procStartInfo.RedirectStandardOutput = true; por procStartInfo.RedirectStandardError = true; para resolver el problema.

Comments are closed.