codehunter
Goto Top

HTTP POST Tool gesucht

Hallo zusammen!

Ich suche ein einfaches Testtool, mit dem ich meine PHP-Scripte, welche POST-Daten erwarten, testen kann. Ich möchte nicht extra für jeden Test ein extra Formular bauen. Gibt es denn kein einfaches Tool, mit dem man einen HTTP-POST-Request an einen bestimmten URL schicken kann? Ich google mir derzeit den Wolf, finde aber nur ein unbrauchbares "Send HTTP Tool " oder das Command Line Tool vom W3C, wofür ich aber extra noch eine Build-Umgebung unter Windows aufsetzen müßte.

Ich stelle mir ein einfaches Programm vor, wo man den Ziel-URL angeben kann und eine Liste von Variablen mit dazugehörigen Werten. Gibts irgendwo sowas?

Grüße
Cody

EDIT: Hat sich erledigt. Ich habe mir mit Hilfe von libcURL und Delphi selbst eins geschrieben.

Content-ID: 162314

Url: https://administrator.de/contentid/162314

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

Snowman25
Snowman25 09.03.2011 um 16:29:06 Uhr
Goto Top
Hallo @Codehunter,

EDIT: Hat sich erledigt. Ich habe mir mit Hilfe von libcURL und Delphi selbst eins geschrieben.

Magst du uns vielleicht den Code zugägnlich machen? Wenn andere mal das selbe Problem haben, können sie einfach auf deine Lösung zurückgreiffen und glücklich sein.

Gruß
Snow
nxclass
nxclass 09.03.2011 um 19:53:00 Uhr
Goto Top
sowas geht doch auch in PHP .. Auszug aus meiner /My/Function.php
<?php
/**
 *
 */
class My_Function
{
    /**
     * 
     */
    private function __construct()
    {
    }

// ...
    /**
     * Erstellt aus einer Liste eine Url
     * 
     * @param array $aParam     Liste der Parameter => Werte
     * @return string           ein Url String
     */
    public static function createUrl($aParam, $bDataOnly=false)
    {
        $sUrl = ($bDataOnly) ? '' : '?';  
        if (is_array($aParam)) {
            $aUrl = array();
            foreach ($aParam as $key=>$value) {
                if (is_array($value)) {
                    foreach ($value as $entry) {
                        $aUrl = urlencode($key).'='.urlencode($entry);  
                    }
                } else {
                    $aUrl = urlencode($key).'='.urlencode($value);  
                }
            }
            $sUrl .= implode((($bDataOnly) ? '&' : '&amp;'), $aUrl);  
        }
        return $sUrl;
    }
    
    /**
     *
     */
    public static function sendHttpPostRequest($sUrl, $aGet, $aPost, $iPort=80)
    {
        $aUrl = parse_url($sUrl);
        $sReferer = $sUrl .'?'. My_Function::createUrl($aGet, true);  
        $sPostData = My_Function::createUrl($aPost, true);
    
        if ($hSock = fsockopen($aUrl['host'], $iPort)) {  
            // sende die Anfrage
            fputs($hSock, "POST {$aUrl['path']} HTTP/1.1\r\n");  
            fputs($hSock, "Host: {$aUrl['host']}\r\n");  
            fputs($hSock, "Referer: $sReferer\r\n");  
            fputs($hSock, "Content-type: application/x-www-form-urlencoded\r\n");  
            fputs($hSock, "Content-length: ". strlen($sPostData) ."\r\n");  
            fputs($hSock, "Connection: close\r\n\r\n");  
            fputs($hSock, $sPostData);
            
            // empfange ggf. eine Antwort
            if (!feof($hSock)) {
                while (!feof($hSock)) {
                    $sResult .= fgets($hSock, 128);
                }
                $sResult = substr($sResult, strpos($sResult, "\r\n\r\n")+4);  
            } else {
                $sResult = true;
            }
            fclose($hSock);
            return $sResult;
        } else {
            //
            return false;
        }
    }

// ...
    
}
dog
dog 09.03.2011 um 20:54:37 Uhr
Goto Top
testen

Öhm...Selenium?
Enclave
Enclave 18.03.2011 um 10:42:58 Uhr
Goto Top
Mit Firefox & Live HTTP Headers kann man die Requests manipulieren aber auch selbst erstellen, manipulieren ist aber einfacher...

Das Plugin sieht etwa so aus...


Enclave