Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie zawartości żądania HTTP, z nagłówkami nie ma problemu...
davidD
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.10.2002

Ostrzeżenie: (0%)
-----


Witam.

Wysyłam socketem normalne żądanie HTTP do skryptu w php, który ma na nie odpowiednio odpowiedzieć. I teraz pojawia się problem - muszę w tym skrypcie jakoś pobrać zawartość tego żądania... Z nagłówkami nie ma problemu, ale co z samą zawartością? Nie udało mi się znaleźć żadnego sposobu, może Wy coś poradzicie? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

W ostateczności mogę wysłać to w nagłówku, ale jednak wolałbym tego uniknąć...

Dzięki (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował davidD 4.01.2005, 22:43:08
Go to the top of the page
+Quote Post
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Jaka zawartosc?
Jesli to jest zadanie typu GET, no to mozesz sie odwolac do tablicy $_GET, jesli natomiast typu POST, no to tablica $_POST.. no chyba, ze nie zrozumialem Twojego zamiaru, wtedy opisz dokladnie jak wysylasz zadanie i co chcesz uzyskac.
Go to the top of the page
+Quote Post
bregovic
post
Post #3





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Żądanie HTTP afaik nie ma żadnej wartości, bo jest przecież tylko GET http://bla lub POST...
Go to the top of the page
+Quote Post
hawk
post
Post #4





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


POST akurat ma jak najbardziej zawartość. Hmm, zawartość mają też takie żądania jak PUT, DELETE, itd, ale Apache nie jest serwerem WebDAV, więc to i tak nie ma znaczenia.
Go to the top of the page
+Quote Post
davidD
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.10.2002

Ostrzeżenie: (0%)
-----


Konkretnie chodzi mi wlasnie o żądanie POST, o całą jego zawartość. No ale chyba wygląda na to, że będę musiał poradzić sobie wysyłając wyszystkoo w nagłówkach w base64
Go to the top of the page
+Quote Post
hawk
post
Post #6





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


To może zacznijmy od początku: co w ogóle chcesz zrobić? Raw POST data?
Go to the top of the page
+Quote Post
davidD
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 10.10.2002

Ostrzeżenie: (0%)
-----


Cytat(hawk @ 2005-01-05 17:03:13)
To może zacznijmy od początku: co w ogóle chcesz zrobić? Raw POST data?

Ech, no dobra:
wymyśliłem sobie mały system do automatycznego update'u jednej aplikacji zainstalowanej na kilku różnych serwerach. A działać ma to tak: uruchamiany przeze mnie skrypt ("klient") łączy się przez socket z plikiem (nazwijmy go "serwerem") znajdującym się na zdalnym serwerze. Wysyła mu w nagłówkach odpowiednie dane (np. klucz do autoryzacji) oraz - właśnie w treści żądania - patch napisany w jakimś dialekcie XML, wyglądający w uproszczeniu np. tak:
  1. <patch version="0.1" application="cms">
  2.      <file name="config.inc.php">
  3.            <line number="100" action="remove" />
  4.      </file>
  5. </patch>

"Serwer" ma pobrać z żądania HTTP, przez które został wywołany, odpowiednie dane - czyli klucz z nagłówka i właśnie patch z treści żądania. Nie chciałem wysyłać tego w nagłówku, żeby niepotrzebnie nie kompikować tego pseudo-protokołu...

Cytat(hawk @ 2005-01-05 17:03:13)
Raw POST data?

Szczerze mówiąc, co nie znam dobrze HTTP i zaczynam się gubić - może w POST w treści żądania nie wysyła się innych danych poza wartościami parametrów POST? (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)

---
No ale dzięki, pomogłeś mi - szukając o Raw POST Data udało mi się znaleźć sposób:
  1. <?php
  2. $ph = fopen(&#092;"php://input\", \"rb\");
  3. while (!feof($ph))
  4. {
  5. $post .= fread($ph, 4096);
  6. }
  7. fclose($ph);
  8.  
  9. ?>

Tylko teraz pozostaje pytanie, czy wysyłanie takich danych w treści żądania POST jest zgodne z HTTP? Czytając odpowiedni RFC nie udało mi się jednoznacznie odpowiedzieć sobie na to pytanie... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował davidD 5.01.2005, 17:51:01
Go to the top of the page
+Quote Post
hawk
post
Post #8





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


A nie możesz wysłać tego jako "normalne" żądanie POST? Jedna wielka zmienna POST i tyle. Co najwyżej trzeba pamiętać jak to się koduje. Albo wystarczy np. curl...

Albo zupełnie inaczej:
...
przecież to jest web service...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 18:46