2017-03-06 5 views
0

Guten Abend,WebClient Encoding Ausgabe

ich eine JSON-Datei von einem CDN herunterzuladen, die mir eine 12kb Datei gibt. Ich habe diese Datei (export.json) geöffnet und überprüft, dass alle vom Codierungsstandpunkt aus korrekt aussieht und JSON-Standard-Syntax ist.

Ich verwende den folgenden Code, um es zu meinem Server herunterzuladen, damit ich es analysieren kann:

//webclient downloads the JSON file 
    var webClient = new WebClient(); 
    webClient.Encoding = System.Text.Encoding.UTF8; 
    string result = string.Empty; 
    try 
    { 
     result = webClient.DownloadString("somewebsite/export.json"); 
     File.WriteAllText(@"C:\Users\WebDev\Documents\Visual Studio 2015\WebSites\test\json.json", result); 
    } 
    catch (Exception ex) { 
     System.Diagnostics.Debug.Write(ex); 
    } 

     //parses downloaded file  

     Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(File.ReadAllText(@"C:\Users\WebDev\Documents\Visual Studio 2015\WebSites\test\json.json")); 
     //creates a dictionary at the outer object level (key=id and value=inner object 
     var dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(o.ToString()); 

ich auch die Downloadfile-Methode ausprobiert habe. Jedes Mal bekomme ich so etwas in der .JSON-Datei, die ich generiere " b X export.json.tmp \ R H ~ : ) u b @"

Irgendwelche Ideen, was ich vermisse? Vielen Dank.

+0

Versuchen Sie [diese Lösung] (http://stackoverflow.com/a/30049848/3744182), die die Codierung aus den Antwortheadern erhält. – dbc

Antwort

0

Verwenden Sie httpclient, HTTPClient Autoanalyse Antwort Header.