Tools om het web vast te leggen en te converteren

Handler met ASP.NETASP.NET API

Beschrijving

Heeft u problemen met het debuggen van uw handler? Probeer de Callback Handler-testtool.

De hier beschreven handler verwerkt callbacks van de GrabzIt-screenshotwebservice. De URL van deze handler wordt doorgegeven aan GrabzIt in de callBackURL parameter van de Save methode. Deze techniek werkt echter alleen als de handler toegankelijk is via internet.

De volgende parameters worden als GET-parameters aan de handler doorgegeven.

  • id - de unieke identificatie van de screenshot, gebruikt door de GetResult methode
  • bestandsnaam - de bestandsnaam van de screenshot, automatisch gemaakt door de unieke identificatie van de screenshot te combineren met de bestandsextensie
  • bericht - elk bericht vanwege een fout die is veroorzaakt tijdens de verwerking van de schermafbeelding
  • customId - elke aangepaste id die werd doorgegeven aan de GrabzIt-webservice via de Save methode
  • format - het formaat van de screenshot, bijv. "bmp8", "bmp16", "bmp24", "bmp", "csv", "gif", "jpg", "json", "pdf", "png", " tiff "," webp "of" xlsx "
  • targeterror - als een 1 wordt geretourneerd, bevat de opname een generieke fout vanwege een probleem dat wordt veroorzaakt door het doel van de opname

Als u alle toegang tot de handler wilt blokkeren, behalve GrabzIt, gebruikt u dit beveiligingstechniek.

Een callback-handler implementeren met behulp van MVC

Onthoud dat callbacks niet werken als uw applicatie zich op localhost bevindt.

Om een ​​handler aan een MVC-project toe te voegen, definieert u eenvoudig een methode met de volgende handtekening in een controller, zoals weergegeven in het SampleMVC-project van de ASP.NET-demo.

Geef de URL van deze methode vervolgens door aan GrabzIt, dus als deze zich in de Home-controller bevindt, kan de callback-URL er ongeveer zo uitzien: 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;
}

Een callback-handler implementeren met behulp van webformulieren

De eenvoudigste manier om een ​​callback-handler te implementeren, is door een generieke handler te maken en te erven GrabzIt.Handler klasse zoals hieronder weergegeven en voer vervolgens de Process methode. Met deze methode worden vijf parameters vastgelegd die aan de GrabzIt-service zijn doorgegeven, inclusief de unieke id van de opname die wordt doorgegeven aan de GetResult methode.

Deze methode retourneert vervolgens de opname saved in de resultatenmap. Maar als een null waarde wordt geretourneerd door de GetResult methode geeft dit aan dat er een fout is opgetreden.

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 technieken

Hoewel de bovenstaande techniek een generieke handler gebruikt, kunt u net zo gemakkelijk een ASPX-pagina gebruiken om de callback te ontvangen en de opname te downloaden. Maak hiervoor gewoon uw eigen ASPX-pagina enz. En lees dan de vraagstring hierboven genoemde parameters. De handigste parameter is de parameter id, die kan worden gebruikt met de GetResult methode om de opname te downloaden.