2014-12-09 12 views

risposta

10

Includere l'opzione hoKeepOrigProtocol nel set di proprietà HTTPOptions (impostarlo su Vero). Tranne che mantenere la proprietà ProtocolVersion impostata su pv1_1 (che è il valore predefinito).

Nel codice TIdCustomHTTP.Post metodo c'è un commento che spiega il comportamento corrente:

Attualmente nel rilasciare un POST, IdHTTP imposterà automaticamente il protocollo alla versione 1.0 indipendentemente dal valore che aveva inizialmente. Questo perché ci sono alcuni server che non rispettano la RFC a in tutta la misura. In particolare, non rispettano l'invio/non invio di l'intestazione Expect: 100-Continue. Fino a quando non troviamo una soluzione ottimale che NON interrompa la RFC, limiteremo i POSTS alla versione 1.0.

Poche righe sotto è il cambiamento alla versione 1.0 con il seguente commento:

// If hoKeepOrigProtocol is SET, it is possible to assume that the developer 
// is sure in operations of the server 
if not (hoKeepOrigProtocol in FOptions) then begin 
    if Connected then begin 
    Disconnect; 
    end; 
    FProtocolVersion := pv1_0; 
end; 

E il codice di cui sopra è saltato (la versione non viene modificato), se si ha la possibilità hoKeepOrigProtocol incluso nel il HTTPOptions.