Introduzione al documento:Il login del link ipertestuale è visibile.
Quando si chiamava l'interfaccia dell'altra parte tramite curl, si è riscontrato che il fenomeno del timeout era molto serio, così ho chiesto alla persona dell'interfaccia dell'altra parte, e l'altra parte ha detto che era necessario aggiungere:
Dopo averlo aggiunto, ho scoperto che funzionava davvero bene, così ho cercato di ricercare come usarlo. Quando si utilizza il curl per POST, quando "i dati POST sono superiori a 1024 byte", il curl non avvierà direttamente una richiesta POST, ma sarà suddiviso in 2 fasi:
Expect: 100-continue
1. Inviare una richiesta contenente un Aspett:100-continue, chiedendo al server di accettare i dati
2. Dopo aver ricevuto la risposta a 100 continue restituita dal Server, i dati vengono inviati al Server
Ma ci sono diversi problemi con questo:
Non tutti i server risponderanno correttamente a 100-continue, ad esempio lighttpd, che restituirà 417 Aspettativa Fallita.
causando ritardo,Quando il client invia il primo Aspett:100-continue, deve aspettare che il server risponda prima di inviare il corpo della richiesta。
Se sei sicuro che il server dell'altra parte non rifiuterà richieste POST superiori a 1024 byte, puoi evitare questo metodo e i due effetti collaterali sopra menzionati, e la soluzione è quella menzionata all'inizio dell'articolo.
Circa 100 continuano
Lo scopo di questo è:
Permette al client di giudicare se il server è disposto a ricevere i dati della richiesta prima di inviarli e, se il server è disposto a riceverli, il client invierà effettivamente i dati.
Comportamento del cliente:
Un client che invia 100 continue non dovrebbe aspettare indefinitamente una risposta dal server e, dopo un periodo di timeout, il client dovrebbe inviare direttamente l'entità.
Comportamento lato server:
Se il server riceve una richiesta di 100 continue, risponderà con 100 continue o invierà un codice di errore. Il server non può mai inviare 100 continue a un client che non invia 100 continue. Ma alcuni server sì. IIS 5 invia erroneamente risposta 100-continua
Se il server riceve il corpo del client prima di inviare la risposta 100 continue, significa che il client ha deciso di iniziare a inviare dati, quindi il server non può più inviare 100 continue al client. Il codice delle impostazioni .NET Expect Off Expect è il seguente:
RestSharp è strutturato come segue:
|