Frage

Ich arbeite an einem ISAPI-Filter aus Antworten bestimmte Inhalte zu entfernen. Ich brauche den ganzen Körper der Antwort zu sammeln, bevor ich die Verarbeitung zu tun, als den Inhalt ich Strippen überlappen könnten Puffer senden.

Um dies zu tun Ich mag würde die Antwort zufrieden mit jeder SF_NOTIFY_SEND_RAW_DATA Benachrichtigung puffern, bis ich bis zum letzten zu bekommen, dann die übersetzten Daten senden. Ich mag den besten Weg, wissen, zu bestimmen, welche SF_NOTIFY_SEND_RAW_DATA ist eigentlich die letzte. Wenn ich bis zum SF_NOTIFY_END_OF_REQUESTnotification warten, dann weiß ich nicht, wie die Daten senden ich gepuffert haben.

Ein Ansatz wäre, den Inhalt Länge zu verwenden. Dies würde ich das Ende der Header erkennen. Es wäre auch die Content-Length-Header korrekt ist erfordern unter der Annahme, (ist das garantiert?). Da HTTP nicht einmal einen Content-Length-Header erfordern, ich bin nicht einmal sicher, dass es immer da sein. Es scheint, wie sollte es ein einfacher Weg sein.

Ich gehe davon aus der Antwort nicht gestückelt ist, so ist mir die Handhabung nicht dechunking, bevor ich die Antwort Änderung tun. Auch wenn ich die Änderungen an der Antwort Körper zu tun, die Größe der teh Antworttext wird sich nicht ändern, so brauche ich nicht zurück und aktualisiert den Inhalt Länge gehen.

War es hilfreich?

Lösung

Schließlich fand ich einige gute Diskussionen über Google.

Diese Beiträge beantworten meine Fragen, sowie werfen Fragen ein komplizierteren Filter würden auseinandersetzen müssen: http: // Gruppen. google.com/group/microsoft.public.platformsdk.internet.server.isapi-dev/browse_thread/thread/85a5e75f342fad2b/cbb638f9a85c9e03?q=HTTP_FILTER_RAW_DATA&_done=%2Fgroups%3Fq%3DHTTP_FILTER_RAW_DATA%26start%3D20%26&_doneTitle=Back+to+Search&&d&pli = 1

Der Filter Ich habe s die volle Anfrage in seinen eigenen Puffer puffert dann die SF_NOTIFY_END_OF_REQUEST mit dem Inhalt zu senden. Die Änderung tut es nicht die Größe, und schließt die Möglichkeit, dass die Antwort gestückelt, so in meinem Fall ist der Filter relativ einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top