J'aimerais pouvoir modifier l'URL contenue dans RequestUri d'un objet C# HttpWebRequest. Je voudrais ajouter un paramètre supplémentaire avec un ID de ticket. [comme & ticket = xyz123]Ajout de paramètres à C# HttpWebRequest
Il semble que cela ne soit pas possible car RequestUri est en lecture seule. Certaines personnes ont suggéré d'utiliser la réflexion pour contourner le problème, mais d'autres disent que même si vous utilisez la réflexion, cela ne fonctionnera pas.
Existe-t-il un autre moyen de contourner ce problème? Puis-je utiliser HttpWebRequest CookieContainer pour inclure les informations de ticket? Bien que le ticket ne figure pas dans un cookie, un appel de service spécial est nécessaire pour récupérer la chaîne de ticket.
Je suis en train de passer outre une méthode d'authentification comme suit:
protected override void HttpAuthenticate(HttpWebRequest request)
{
Uri uri = request.RequestUri;
Uri newUrl = new Uri(AuthData.appendTicket(uri.ToString()));
request.RequestUri = newUrl; // Cannot do this because it is readonly
J'essaie juste de remplacer cette méthode unique pour changer le mécanisme d'authentification. L'authentification standard de base définit les informations d'identification de HttpWebRequest. Au lieu de cela j'aimerais pouvoir ajouter l'information de billet - qui est normalement passée en tant que paramètre additionnel sur l'URL. –
Je comprends le désir, mais ça ne marche pas. Vous pouvez changer le paramètre à passer par ref, puis changer l'entrée HttpWebRequest pour le nouveau HttpWebRequest dans la méthode. Probablement la principale raison pour laquelle HttpWebRequest est construit de cette façon est de vous empêcher d'échanger une URL http pour, disons, une URL ftp ou un fichier après la création de l'objet. –