La classe TIdHttp
di Indy ha - in una versione recente - una routine Delete()
. Ma per qualche ragione, questa è una procedura, non una funzione. Put()
, Get()
, ecc. Sono tutte funzioni che restituiscono il contenuto del corpo della risposta. O come stringa o consegnata a un TStream
. Non è possibile con Delete()
, che è in contraddizione con definizione DELETE
s':Come ottenere il testo di risposta di DELETE con TIdHttp?
Una risposta positiva DEVE pari a 200 (OK) se la risposta include un'entità che descrive lo stato, 202 (accettata) se l'azione non ha ancora stato emanato, o 204 (Nessun contenuto) se l'azione è stata emanata ma la risposta non include un'entità.
Ho quindi provato a utilizzare GetResponse()
, ma che invece ha semplicemente chiuso la mia connessione con garbo, senza riempire la risposta.
Quindi, come faccio a leggere il contenuto del corpo della risposta da una risposta DELETE?
Come su 'immobile TIdHttp.ResponseText'? in ogni caso cosa ti aspetti di trovare nel testo della risposta? (diverso dal test per il 'ResponseCode') – kobik
' TIdHttp.ResponseText' non era apparentemente quello che pensavo. È strettamente correlato a 'ResponseCode', quindi su una risposta di 200,' TIdHttp.ResponseText' contiene 'HTTP/1.1 200 OK', non il corpo della risposta effettiva. Per ora, il mio lavoro in giro può funzionare senza i dati, ma è stato solo restituendo l'ID dell'elemento eliminato, così ho potuto verificare che cancellasse l'elemento giusto. – Svip
Non ho mai usato il metodo 'DELETE', ma suppongo che tu possa restituire quell'ID nelle intestazioni di risposta. Inoltre, presumo che tu controlli il server, e non sono così sicuro del motivo per cui devi utilizzare il metodo 'DELETE' in primo luogo. perché non usare 'GET' o' POST' e indicare nei parametri della richiesta quale risorsa eliminare? – kobik