HttpWebRequest
ajoute automatiquement un Expect: 100-continue
en-tête pour POST. Diverses sources sur Internet suggèrent que cela peut être désactivé comme suit:
System.Net.ServicePointManager.Expect100Continue = false;
Cependant, j'écris une bibliothèque et je ne peux pas la désactiver pour l'ensemble du domaine d'application, au cas où l'application s'appuierait sur ce comportement. Je ne peux pas non plus supposer qu'il restera réglé sur cette valeur. Comment puis-je le désactiver pour une demande spécifique?
La classe HttpWebRequest
possède une propriété appelée ServicePoint
qui peut être utilisée pour modifier ce paramètre pour une demande spécifique. Par exemple:
var req = (HttpWebRequest) WebRequest.Create(...);
req.ServicePoint.Expect100Continue = false;
Si vous devez également définir un proxy, assurez-vous de le faire d'abord. Sinon, Expect100Continue sera de nouveau converti en true. Donc:
HttpWebRequest webRequest = WebRequest.CreateHttp(_url);
webRequest.Proxy = new WebProxy(_proxyHost, _proxyPort);
webRequest.ServicePoint.Expect100Continue = false;