2017-09-28 3 views
0

현재 HttpWebRequest에서 응답을 받고 MessageBox를 사용하여 표시하려고합니다. 피들러 쇼처럼 응답을 받지만 MessageBox에 기호로 표시됩니다.C# - HttpWebResponse 출력이 messagebox의 심볼로 표시됩니다.

내 문제 : 나는 MessageBox.Show 기능을 사용하여 응답을 보여주기 위해 노력하고 있지만 응답이 상징으로 보여줍니다

. 응답이 json 객체이기 때문에 이것이 발생했다고 생각합니다.

응답 결과와 피들러 요청에 포함 된 스크린 샷 :

나는 Newtonsoft.Json Nuget 패킷을 설치 한 다음과 같은 방법으로 그것을 사용하여 시도 :

var json = JsonConvert.DeserializeObject(new StreamReader(response.GetResponseStream()).ReadToEnd()); 
MessageBox.Show(json.ToString()); 
내가 시도 무엇 Screenshot link.

응답을 수신 할 C# 코드 :

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); 
} 

답변

0

JSON 개체의 문자열을 가져 오려고합니다. 이 시나리오에 대해 다른 문자열을 저장해야합니다.

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

이렇게하면 예외 발생 : 값을 구문 분석하는 동안 예기치 않은 문자가 발생합니다. 경로 ", 0 행, 0 위치. – stackjjs

+0

@stackjjs, 이걸 시도해볼 수 있겠 니? : JsonConvert.DeserializeObject (resp);' – praty