Tools zum Erfassen und Konvertieren des Webs

Handler mit ASP.NETASP.NET API

Beschreibung

Haben Sie Probleme beim Debuggen Ihres Handlers? Probieren Sie die Callback-Handler-Test-Tool.

Der hier beschriebene Handler verarbeitet Rückrufe vom GrabzIt-Screenshot-Webservice. Die URL dieses Handlers wird in der an GrabzIt übergeben callBackURL Parameter der Save Methode. Diese Technik funktioniert jedoch nur, wenn der Handler über das Internet erreichbar ist.

Die folgenden Parameter werden als GET-Parameter an den Handler übergeben.

  • id - die eindeutige Kennung des Screenshots, die von der GetResult Methode
  • Dateiname - Der Dateiname des Screenshots, der automatisch erstellt wird, indem die eindeutige Kennung des Screenshots mit der Dateierweiterung kombiniert wird
  • message - jede Nachricht aufgrund eines Fehlers, der während der Verarbeitung des Screenshots verursacht wurde
  • customId - any benutzerdefinierte ID das wurde an den GrabzIt-Webservice über die Save Methode
  • format - das Format des Screenshots, zB "bmp8", "bmp16", "bmp24", "bmp", "csv", "gif", "jpg", "json", "pdf", "png", " tiff "," webp "oder" xlsx "
  • targeterror - Wenn ein 1 zurückgegeben wird, enthält das Capture einen allgemeinen Fehler, der auf ein vom Capture-Ziel verursachtes Problem zurückzuführen ist

Wenn Sie den gesamten Zugriff auf den Handler blockieren möchten, mit Ausnahme von GrabzIt, verwenden Sie diese Option Sicherheitstechnik.

Implementieren eines Callback-Handlers mit MVC

Denken Sie daran, dass Rückrufe nicht funktionieren, wenn sich Ihre Anwendung auf localhost befindet.

Um einen Handler zu einem MVC-Projekt hinzuzufügen, definieren Sie einfach eine Methode mit der folgenden Signatur in einem Controller, wie im SampleMVC-Projekt des ASP.NET-Demo.

Übergeben Sie dann die URL dieser Methode an GrabzIt. Befindet sich diese im Home-Controller, könnte die Rückruf-URL folgendermaßen aussehen: http://www.example.com/Home/Handler

public ActionResult Handler(string filename, string id, string message, string customId, string format, int targeterror)
{
    GrabzItClient grabzItClient = GrabzItClient.Create("Sign in to view your Application Key", "Sign in to view your Application Secret");
    GrabzItFile file = grabzItClient.GetResult(id);
    file.Save(Server.MapPath("~/results/" + filename));

    return null;
}

Implementieren eines Callback-Handlers mithilfe von Web Forms

Die einfachste Möglichkeit, einen Callback-Handler zu implementieren, besteht darin, einen generischen Handler zu erstellen und von diesem zu erben GrabzIt.Handler Klasse wie unten gezeigt und implementieren Sie dann die Process Methode. Diese Methode erfasst fünf vom GrabzIt-Dienst übergebene Parameter, einschließlich der eindeutigen ID des Captures, das an das übergeben wird GetResult Methode.

Diese Methode gibt dann das Capture zurück saved im Ergebnisverzeichnis. Wenn jedoch a null Wert wird von der zurückgegeben GetResult method dies zeigt an, dass ein Fehler aufgetreten ist.

public class OverridenHandler : GrabzIt.Handler
{
    protected override void Process(HttpContext context, string filename, string id, string message,
        string customId, string format, bool targetError)
    {
        GrabzItClient grabzIt = GrabzItClient.Create("Sign in to view your Application Key", "Sign in to view your Application Secret");
        GrabzItFile file = grabzIt.GetResult(id);
        file.Save(context.Server.MapPath("~/results/" + filename));
    }
}

Andere Techniken

Während die obige Technik einen generischen Handler verwendet, können Sie genauso einfach eine ASPX-Seite verwenden, um den Rückruf abzurufen und das Capture herunterzuladen. Dazu erstellen Sie einfach Ihre eigene ASPX-Seite usw. und lesen dann die querystring oben genannten Parameter. Der nützlichste Parameter ist der id-Parameter, der mit dem verwendet werden kann GetResult Methode zum Herunterladen des Captures.