C #: Wie wird eine große Zeichenfolge per WebRequest POST?

9

Wie kann ich eine große Zeichenfolge (in meinem Fall XML mit BLOB) mit POST hochladen, ohne Timeout mit GetResponse zu bekommen?

Das Ändern der Zeitüberschreitung hilft, aber das ist keine wirkliche Lösung. Wenn der Server wirklich tot ist oder der POST unterbrochen wurde, muss ich auf das extrem große Timeout warten.

Irgendeine Idee?

%Vor%     
Wowa 15.02.2011, 08:30
quelle

1 Antwort

3
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123timeout ___ Die Zeitlimitbedingung bezieht sich auf eine vordefinierte Zeitspanne, die verstreichen darf, bevor ein Ereignis eintreten kann. Timeout kann sich auch auf ein Ereignis beziehen, das nach Ablauf einer bestimmten Zeitspanne stattfindet. ___ qstnhdr ___ C #: Wie wird eine große Zeichenfolge per WebRequest POST? ___ tag123httpwebrequest ___ HttpWebRequest ist eine Klasse für .NET Framework-Anwendungen, die eine HTTP-spezifische Implementierung der WebRequest-Klasse bereitstellt. ___ tag123httppost ___ POST ist eine der HTTP-Protokollmethoden. Es wird verwendet, wenn der Client Daten an den Server senden muss, z. B. beim Hochladen einer Datei oder beim Senden eines ausgefüllten Formulars. ___ qstntxt ___

Wie kann ich eine große Zeichenfolge (in meinem Fall XML mit BLOB) mit POST hochladen, ohne Timeout mit GetResponse zu bekommen?

Das Ändern der Zeitüberschreitung hilft, aber das ist keine wirkliche Lösung. Wenn der Server wirklich tot ist oder der POST unterbrochen wurde, muss ich auf das extrem große Timeout warten.

Irgendeine Idee?

%Vor%     
___ antwort5001349 ___

Ja, das ist ziemlich erwartet HTTP-Verhalten.

Optionen:

  • habe ein großes Timeout (das hast du schon gemacht) und akzeptiere, dass es sehr lange dauern kann, Zeit zu verlieren (im Gegensatz zu einer Weile wegen der Bandbreite)
  • vielleicht können Sie gzip auf die Anfrage anwenden (und dem Server mitteilen, dass Sie es komprimiert senden); Ich weiß ehrlich gesagt nicht, ob dies automatisch unterstützt wird , aber es könnte durchaus passieren, dass die API explizit nach einem bestimmten Header sucht und gzip Dekomprimierung auf die Payload anwendet
  • Ändern Sie die API, um eine Anzahl von kleinen Uploads durchzuführen, und eine Abschlussnachricht
  • lebe damit
___
Marc Gravell 15.02.2011, 08:34
quelle