Introducción al documento:El inicio de sesión del hipervínculo es visible.
Al llamar a la interfaz de la otra parte a través de curl, se comprobó que el fenómeno del tiempo de espera era muy grave, así que pregunté a la persona de la interfaz de la otra parte, y la otra parte dijo que era necesario añadir:
Después de añadirlo, descubrí que funcionaba muy bien, así que investigué cómo usarlo. Al usar curl para POST, cuando "los datos POST son mayores a 1024 bytes", curl no iniciará directamente una solicitud POST, sino que se dividirá en 2 pasos:
Expect: 100-continue
1. Enviar una solicitud que contenga un Expect:100-continue, pidiendo al servidor que acepte los datos
2. Tras recibir la respuesta de 100 continuaciones devuelta por el servidor, los datos se envían por POST al servidor
Pero hay varios problemas con esto:
No todos los servidores responderán correctamente a 100-continue, por ejemplo lighttpd, que devolverá 417 Expectation Failed.
causando retraso,Cuando el cliente envía el primer Expect:100-continue, debe esperar a que el servidor responda antes de enviar el cuerpo de la solicitud。
Si estás seguro de que el servidor de la otra parte no rechazará solicitudes POST de más de 1024 bytes, puedes evitar usar este método y evitar los dos efectos secundarios mencionados anteriormente, y la solución es la que se menciona al principio del artículo.
Continúan unas 100
El propósito de esto es:
Permite al cliente juzgar si el servidor está dispuesto a recibir los datos de la solicitud antes de enviarlos, y si el servidor está dispuesto a recibirlos, el cliente realmente enviará los datos.
Comportamiento del cliente:
Un cliente que envía 100 continuaciones no debe esperar eternamente una respuesta del servidor, y tras un periodo de tiempo de espera, el cliente debe enviar directamente a la entidad.
Comportamiento en el servidor:
Si el servidor recibe una solicitud de 100 continuaciones, responderá con 100 continuar o enviará un código de error. El servidor nunca puede enviar 100 continuaciones a un cliente que no envíe 100 continuas. Pero algunos servidores sí. IIS 5 enviando incorrectamente la respuesta 100-continue
Si el servidor recibe el cuerpo del cliente antes de enviar la respuesta de 100 continuos, significa que el cliente ha decidido empezar a enviar datos, por lo que el servidor ya no puede enviar 100 continuaciones al cliente. El código de configuración .NET Expect Off Expect es el siguiente:
RestSharp está organizado de la siguiente manera:
|