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-Key: 162314

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

Printed on: April 16, 2024 at 17:04 o'clock

Member: Snowman25
Snowman25 Mar 09, 2011 at 15:29:06 (UTC)
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
Member: nxclass
nxclass Mar 09, 2011 at 18:53:00 (UTC)
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;
        }
    }

// ...
    
}
Member: dog
dog Mar 09, 2011 at 19:54:37 (UTC)
Goto Top
testen

Öhm...Selenium?
Member: Enclave
Enclave Mar 18, 2011 at 09:42:58 (UTC)
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