[Dead] Wie erfolgreich POST an eine alte ASP.NET-Site mit Asynchronous Postback

8

[Update] Leider hatte ich nie eine Gelegenheit, dieses Problem zu lösen. Es gibt jedoch unten einige interessante Antworten, die einen Versuch für andere Leser wert sind, die etwas Ähnliches machen möchten.

Ich versuche, Daten von einer Site mit ASP.NET zu analysieren. Diese Seite hat eine Login-Seite, die ich erfolgreich durchlaufen habe (mit einem legitimen Account) und für die ich den Cookie gespeichert habe, aber wenn ich tiefer in die Site hineingehe, muss ich durch UpdatePanels über Asynchrone Postbacks navigieren. Die UpdatePanels enthalten die gewünschten Daten.

Ich versuche das alles mit PHP und Curl zu machen. Ich kann die erste Seite erfolgreich laden. Wenn ich meine Zielseite mit allen relevanten Daten (die ich über das Firefox-Tamper-Daten-Plugin erhalten habe) anmelde, löscht das von curl zurückgegebene Echo immer meine Seite. Normalerweise würde das Echo des Ergebnisses nur weiter unten auf der Seite ausgegeben werden (oder etwas Fehler / verstümmelten Text ausspucken). curl_error () druckt nichts aus, daher stimmt etwas nicht mit dem, was mir zurückgegeben wird.

Ich bin am Ende darüber, wie man das von hier aus macht. Bitte sagen Sie mir, ob: a) Sie wissen, welchen Fehler ich erhalte, b) ob dies überhaupt nur mit PHP möglich ist, und c) ob ich dagegen Javascript abpinseln muss, um mit den UpdatePanels von ASP.NET zu interagieren .

%Vor%

Hier sind der Header und der Body, den ich vom Server zurückerhalte (per E-Mail an mich selbst, um die Löschung der Seite mit der Echo-Anweisung zu umgehen):

%Vor%

Dies erklärt das Problem, das ich bekomme, wenn die Seite leer wird (JavaScript leitet meine Browser-Ausgabe um). Es scheint auch anzuzeigen, dass der Header nicht das Problem ist, da ich einen HTTP-Fehler von schlechten Header-Werten bekommen würde.

    
David 27.11.2011, 03:33
quelle

4 Antworten

1

A. Sie geben in Ihrer Anfrage an, dass Sie ein Firefox-Browser sind:

curl_setopt($cl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0');

Nimm nicht an, du bist Firefox:

  • wenn Sie Skripte nicht verarbeiten können (wie Firefox es kann und tut)
  • , wenn Sie ASP.NET verhindern, dass das Senden Sie eine partielle Rendering-Antwort

Mache deinen eigenen User-Agent-Namen oder sende ihn gar nicht.

ASP.NET überprüft, ob der Benutzeragent Rückrufe unterstützt: HttpCapabilitiesBase.SupportsCallback Property

B. Senden Sie nicht __ASYNCPOST = true (versuchen Sie es).

    
Peter Ivan 29.06.2012, 07:11
quelle
0

Eine andere Herangehensweise kann ein sehr nützliches PHP-Werkzeug sein (eine Klasse, die Browserverhalten emuliert), die alle den Job behält, um alle Felder zu verfolgen, den post / get by Klick auf Links oder Schaltflächen.

Hier der Link:

simpletest

    
Ivan Buttinoni 30.11.2011 19:02
quelle
0

Ich habe keine Ahnung von PHP und Curl, aber wenn ich richtig verstehe, versuchst du, Informationen an eine ASP-Seite zu senden. Möglicherweise besteht das Problem darin, dass auf der Seite die Option CausesValidation aktiviert ist. Der Server lässt also keine externen POSTs auf der Seite zu.

    
adripanico 21.09.2012 14:23
quelle
0

Hier sind Sie ein adaptierter Ansatz, der für mich funktioniert:

%Vor%     
Samuel Vicent 22.06.2017 08:52
quelle