PHP Amazon Webservices - Problem und keine Lösung...

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

nutze seit längerem die Amazon Webservices. Aber auf einmal läuft meine kleine Funktion nichtmehr. Bis vor einigen Tagen ging noch alles ohne Probleme und auch die Signatur hatte ich eigentlich eingebaut. Ich hab auch schon versucht übers Amazon Webforum Hilfe zu bekommen, da ich mir den plötzlichen Fehler ohne Umstellung oder ähnliches einfach nicht erklären kann. Deswegen hoffe ich, dass eventuell hier jemand dabei ist, der sich mit auskennt und eventuell helfen kann...
Denn auf einmal bekomm ich nurnoch folgende Meldung:

Warning: file_get_contents( https://ecs.amazonaws.de/onca/xml?A...=cKgPFmUOpdYB/h1G6buZVbM3aEIpH7bp0mCWp5JaWS0=) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /var/www/web12/html/out/schnittstellen.php on line 62

Das ist meine Funktion:

PHP:
function amazon($suche,$access_key_id,$secret_access_key,$associate_id){
           
        $suche = urlencode($suche);        

        $SearchIndex    = "All";
        $Suchwort        = $suche;
        $ItemPage        = '1';

        $aktuelle        = gmdate("Y-m-d\TH:i:s\Z");
        $aktuellezeit    = urlencode($aktuelle);


        $alleparameter = "AWSAccessKeyId"  ."=".  $access_key_id                 ."&".
                                   "AssociateTag"           ."=".  $associate_id                     ."&".
                                   "ItemPage"                  ."=".  $ItemPage                          ."&".
                                   "Keywords"                ."=".  $Suchwort                         ."&".
                                   "Operation"                ."=". "ItemSearch"                       ."&".
                                   "ResponseGroup"      ."=". "Medium"                           ."&".
                                   "SearchIndex"              ."=". $SearchIndex                     ."&".
                                   "Service"                     ."=". "AWSECommerceService" ."&".
                                   "Timestamp"              ."=".  $aktuellezeit                      ."&".
                                   "Version"                    ."=". "2009-07-30";
          
          
          
        $stringsignr = "GET\n"."ecs.amazonaws.de"."\n"."/onca/xml"."\n".$alleparameter;
              
        $signature1 = base64_encode(hash_hmac("sha256", $stringsignr, $secret_access_key, True));
              
        $signature2  = urlencode($signature1);
               

        $data = file_get_contents("https://ecs.amazonaws.de/onca/xml?".$alleparameter."&Signature=".$signature2);
       $parsed_xml = simplexml_load_string($data);
   
        $numOfItems = $parsed_xml->Items->TotalResults;
        if($numOfItems>0){
            return $parsed_xml;
        }else{
            return "";
        }
}

Da ich leider auch im Amazon - Forum nicht wirklich weiterkomme, hoffe ich, dass eventuell hier jemand dabei ist, der die Schnittstelle auch nutzt und mir weiterhelfen kann.

Dankeschön

EDIT: Aktueller Status:

Haben das jetzt noch mehrfach getestet und auch auf verschiedenen Servern. Und zwar kommt jetzt folgendes bei raus:

|bei mir aufm Server|auf nem anderern Server
amazon schnittstelle|läuft nicht|läuft
file_get_contents(mit anderer URL)|läuft|läuft

Und genau jetzt wirds komisch. Denn ich check einfach nicht, wo hier der Unterschied zwischen anderen URL, die mittels file_get_contents geladen werden, ist und der amazon.
Deswegen bin ich natürlich auf php - config - Einstellungssuche gegangen, aber find einfach nichts. Es muss auch was globales sein aufm Server, denn auf allen Accounts dieses Servers läuft es nicht.

Habt ihr eventuell noch ne Idee woran es liegen kann?
 
Zuletzt bearbeitet:
In Foren fragen bringt dir nicht viel. Snapp dir Wireshark, fang den Request ab und guck ihn dir an. Das dürfte wohl die einfachste Lösung zu sein, um den Fehler zu sehen. Code angucken wird dich nicht weit bringen.
 
Wenn ich mich recht entsinne wurde im ZendFramework auch die Amazon-Komponente umgebaut, weil es zu Änderungen im Webservice kommen sollte, ob das schon längst passiert ist oder gerade jetzt stattfand, da fragst du aber den Falschen.
 
Hallo,

sitz leider immernoch an dem Problem...hab oben mal den Status geändert, denn komm einfach nicht weiter.
Hat vielleicht einer von euch noch ne Idee?