1

Ich versuche einfach Web-API-Anwendung mit GET und POST.When ich zu einem GET-Request Antwort zu machen:Wie Keep-Alive-Header-Antwort machen?

{ 
    "status": "OK", 
    "headers": 
    { 
     "Date": "Fri, 18 Aug 2017 16:50:38 GMT", 
     "Transfer-Encoding": "chunked", 
     "Connection": "close", 
     "Content-Type": "application/json; charset=utf-8", 
     "Server": "Kestrel" 
    }, 
    "body": "....", 
    "code": 200, 
    "protocol": "HTTP/1.1" 
} 

Aber ich will "Connection": "keep-alive" machen, nicht "Connection": "close" so änderte ich meine Config.

Startup.cs:

public void Configure(IApplicationBuilder app, 
         IHostingEnvironment env, 
         ILoggerFactory loggerFactory) 
{ 
    loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
    loggerFactory.AddDebug(); 
    app.UseMvc(); 
    app.UseSession(); 
    app.Run(async (context) => 
    { 
     context.Response.Headers[HeaderNames.Connection] = "Keep-Alive"; 
    });      
} 

Aber, erhalte ich eine "Connection": "close" Antwort.

Haben Sie eine Idee, wie Sie die Einstellung "keep-alive" ändern können?

Antwort

1

HTTP/1.1 definiert die Verbindungsoption "Schließen", damit der Absender signalisiert, dass die Verbindung nach Abschluss der Antwort geschlossen wird. Beispiel: Verbindung: Schließen Sie entweder in der Anfrage oder den Antwort-Header-Feldern zeigt an, dass die Verbindung nicht als "persistent" betrachtet werden sollte, nachdem die aktuelle Anfrage/Antwort abgeschlossen ist.

Wenn Sie versuchen, eine dauerhafte Verbindung zu erreichen, möchten Sie vielleicht in Websockets schauen.