2017-09-28 5 views
0

J'essaie actuellement de recevoir une réponse d'un HttpWebRequest et de l'afficher en utilisant un MessageBox. Je reçois la réponse en tant que fiddler, mais elle s'affiche sous la forme d'un symbole dans le MessageBox.C# - La sortie HttpWebResponse est affichée en tant que symbole dans la boîte aux messages

Mon problème:

Je suis en train de montrer la réponse en utilisant la fonction MessageBox.Show mais la réponse montre comme un symbole. Je crois que cela est dû au fait que la réponse est un objet json.

Capture d'écran contenant la réponse résultat et demande Fiddler: Screenshot link.

Qu'ai-je essayé:

J'ai installé le paquet Nuget Newtonsoft.Json et avons essayé de l'utiliser de la manière suivante:

var json = JsonConvert.DeserializeObject(new StreamReader(response.GetResponseStream()).ReadToEnd()); 
MessageBox.Show(json.ToString()); 

Code C# pour recevoir la réponse:

try 
{ 
    string post = "{\"input01\":{\"Input\":\"GmailAddress\",\"GmailAddress\":\"" + words[0] + "\",\"FirstName\":\"\",\"LastName\":\"\"},\"Locale\":\"de\"}"; 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://accounts.google.com/InputValidator?resource=SignUp&service=mail"); 
    request.Method = "POST"; 
    request.Accept = "*/*"; 
    request.Headers.Add("Accept-Encoding", "gzip, deflate, br"); 
    request.Headers.Add("Accept-Language", "en-US,en;q=0.8"); 
    request.Host = "accounts.google.com"; 
    request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"; 
    request.ContentType = "application/json"; 
    request.KeepAlive = true; 

    byte[] postBytes = Encoding.ASCII.GetBytes(post); 
    request.ContentLength = postBytes.Length; 
    Stream requestStream = request.GetRequestStream(); 

    requestStream.Write(postBytes, 0, postBytes.Length); 
    requestStream.Close(); 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

    var html = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
    MessageBox.Show(html); 
} 
catch(Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

Répondre

0

Vous essayez d'obtenir une chaîne pour l'objet JSON. Vous devriez stocker une chaîne différente pour ce scénario.

string resp = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
var json = JsonConvert.DeserializeObject(resp); 
MessageBox.Show(resp); 
+0

Ceci provoquerait une exception: Chargeur inattendu rencontré lors de l'analyse. Chemin ", ligne 0, position 0. – stackjjs

+0

@stackjjs, pouvez-vous essayer ceci:' JsonConvert.DeserializeObject (resp); ' – praty