J'essaie de lancer un grattoir d'écran et de continuer à obtenir des problèmes viewstate invalides. Il semble que lors du téléchargement de données System.Net.WebClient ou de l'appel System.Text.UTF8Encoding.Default.GetString pour convertir le tableau d'octets renvoyé par l'appel WebClient DownloadData en chaîne - que les chaînes qui correspondent aux codes de caractères d'URL sont en cours de conversion .Url encoded characters, ViewState et byte [] tableaux oh mon
ie
chaînes d'URL de caractères codés comme% 2B sont convertis en leurs caractères normaux (+ pour% 2B).
Est-ce que cela se passe dans la classe WebClient? Est-ce la façon dont je convertis le tableau d'octets en une chaîne?
EDIT:
Sur la base de suggestions que j'ai essayé de changer à l'appel DownloadString de la classe WebClient et la chaîne résultante a converti les codes de caractères au caractère spécifique de sorte qu'il apparaît WebClient est le coupable.
EDIT 2:
Solved. En effectuant un appel à System.Web.HttpUtility.UrlEncode, j'ai pu convertir le + en% 2B avant d'envoyer la chaîne viewstate au serveur dans les requêtes suivantes. Je ne sais toujours pas où et pourquoi le problème se produisait mais le serveur attendait une chaîne viewstate qui contenait ...% 2B ... et recevait ... + ... et qui déterminait que viewstate était invalide et jeter l'exception. Bravo à Jon & Henk pour m'avoir obligé à repenser mes hypothèses.
Post Peut-être que le code? J'ai du mal à imaginer comment WebClient pourrait déclencher une erreur ViewState. –