Variablen mit GET per send (Socket), erhalte bei Unix 404 Error



  • Mit folgenden Code möchte ich einen HTTP Request absetzten zu einem Shoucast Server, um den Titel upzudaten (wat nen Dinglish)^^
    Verbindung u.s.w. ist OK, und als Antwort erhalte ich 404 Resource not found.
    kopiere ich den Requeststring in den Browser, funktioniert es.

    char sendbuf[512];
    					sprintf(sendbuf,"GET /admin.cgi?pass=%s&mode=updinfo&song=%s HTTP/1.1\r\nHost:www.meine-domain.de:8000\r\nConnection: close\r\n\r\n\0",sccParams.schoutcastpassword,encodesong);
    					printf("anfrage: %s \n",sendbuf);
    					int bytesSent = 0; 
    					int size = strlen(sendbuf);
    					do 
    					{ 
    					     result = send(Socket, sendbuf + bytesSent, size - bytesSent, 0); 
    					     if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin. 
    					     { 
    					          printf("konnte Titel: %s nicht updaten\n\n",nsong); 
    					     } 
    					     bytesSent += result; 
    					} while(bytesSent < size); 
    
    					printf("Bytes sendet: %d \n",bytesSent);
    

    Der Titel ist URLEncoded (%20 und so), also wie gesagt, eigentlich korrekt.
    komisch ist, das er die Datei admin.cgi nicht findet (404), obwohl ja vorhanden, hmmm.

    Einer ne Idee woran es liegen könnte?



  • war einfach zu doof 🙂

    *sniip*



  • Versuch mal die Portangabe im Host-Header wegzulassen.



  • Moment ich teste eben das Escapen, den Port kann ich lassen, die Browsers senden diesen genauso und daran liegts nicht, habs mit nem Test server ausgelesen



  • Neee, war mir auch klar, so sendet er ja, statt echte Zeilenumbrüche eben den String mit "\r\n" in klar text, darauf antwortet er garnicht, also der Request ist so schon richtig, kann es sein, das es Zeichensatzcodierungs Probleme sind beim Coden und den auf dem Server verwendeten?
    Obwohl der Range der Zeichen und Zahlen überall gleich sein dürfte.



  • sorry, ich bin müde, und habe nicht nachgedacht...
    vollkommener quatsch.
    weg mit den backslash.

    (ich habe heute zuviel ecken)

    üps: peinlich, ich geh jetzt ins bett!!!



  • Komisch ist, wenn ich es auf meinem Rechner Probiere, mit Shoutcast für Windoof, und mal eben son Titelupdate bastel, dann geht es, nur eben auf Linux nicht.

    Ich werde mal eben testen, was aus meiner Routine ankommt, ich schick es nach mir nach hause, stat zum localhost-Shoutcast



  • Habs raus, Shoutcast will nen User Agenten, hab ihm einen Gegeben und nun gehts, wat bescheuert, ist doch dann unlogisch nen 404 Fehler zu geben, wer hat den Dreck den gecodet (nullSoft) wofür die NULL wohl steht 😃


Anmelden zum Antworten