Existe-t-il un moyen d'obtenir le type de contenu de la réponse ou, inversement, de définir le type de contenu d'une demande sortante dans Silverlight à l'aide de WebClient?C# Silverlight WebClient obtenir le type de réponse de contenu?
Modifier
Je dois faire des requêtes http et être en mesure de réaliser des progrès pour eux. Je veux emballer les machines pour faire les demandes dans un module générique et l'utiliser partout dans mon code. C'est ce que j'ai déjà fait. La difficulté semble être lors de la soumission de différents types de données au serveur dans POST Je n'ai aucun moyen de dire au serveur quelles sont les données (json, xml, encoder le formulaire, binaire)
Je crois que je peux faire face à cela par en passant? content-type = x avec la requête, et en paramétrant le serveur pour le préférer sur l'en-tête Content-Type. J'ai également aucun moyen de savoir quel type de contenu le serveur répond, je pense que je peux résoudre cela en passant le type attendu des données lorsque je fais une demande.
Si quelqu'un a une meilleure solution, s'il vous plaît parler :)
/Modifier
Voilà ma situation. Les objets HttpWebRequest/Response implémentent une interface interne qui permet de surveiller la progression de la requête. Si vous souhaitez effectuer des requêtes volumineuses, il est très important que l'utilisateur puisse voir une barre de progression indiquant l'état du téléchargement/téléchargement.
L'utilisation de HttpWebRequest/Response est donc terminée. Ne laissant que WebClient, mais je trouve des choses étranges à ce sujet.
Il ne peut pas être sous-classé. Ce n'est pas réellement scellé, mais le constructeur est marqué [SecuritySafeCritical], ce qui, pour autant que je sache, signifie que je ne peux pas l'appeler à partir d'une classe dérivée. Au moins, j'ai échoué, et trouvé d'autres sur Google qui avaient échoué, mais je serais très heureux d'avoir tort sur ce point.
En interne, il utilise BrowserHttpWebResponse, qui ne remplace pas la propriété abstraite Headers, et WebClient.ResponseHeaders juste vers m_Response.Headers, qui lance simplement NotImplementedException.
Je ne suis pas sûr que Content-Type serait même dans ResponseHeaders, mais j'aurais aimé vérifier.
Il semble que nous ayons le choix malheureux d'avoir des informations de progression ou des informations sur le type de contenu mais pas les deux dans Silverlight. Selon les docs, il ne semble pas non plus possible de définir Content-Type sur la requête sortante avec WebClient. Content-Type est répertorié en tant qu'en-tête restreint. Je n'ai pas encore testé cela.
Bien qu'il soit intéressant de noter que sur une erreur, vous réellement obtenir passé l'objet de réponse et avoir accès à StatusCode, Content-Type, etc.
Qu'essayez-vous d'accomplir? Quel est votre but ultime? Vous avez expliqué les méthodes que vous avez essayées mais vous n'avez pas expliqué ce que vous essayez de faire. –