Я хочу получить файл csv из приложения http , MicroStrategy, но вместо этого я получаю двоичный файл, который можно открыть в Excel, но не в текстовом редакторе.
Когда я использую тот же url в браузере, он загружается как текст и может быть открыт в текстовом редакторе.
Это соответствующие (я думаю) строки:
HttpClient cliente;
cliente = new HttpClient(handler) { BaseAddress = uri, Timeout = new TimeSpan(0, 30, 0) };
...
string csv;
responseMessage = await cliente.GetAsync(uri);
HttpContentHeaders contentHeaders = responseMessage.Content.Headers;
csv = await responseMessage.Content.ReadAsStringAsync();
File.WriteAllText(caminhoArquivo, csv, Encoding.UTF8);
Заголовки показывают правильный Content-Type :
responseMessage.Content.Headers = {Content-Length: 6188
Content-Disposition: attachment;filename=Grupo Cont%C3%A1bil.txt;
Content-Type: text/plain
}
Просто чтение байтов и запись байтов это файл в программе просмотра в шестнадцатеричном формате:
byte[] bytes;
bytes = await responseMessage.Content.ReadAsByteArrayAsync();
File.WriteAllBytes(caminhoArquivo, bytes);
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000: 47 00 72 00 75 00 70 00 6F 00 20 00 43 00 6F 00 G.r.u.p.o...C.o.
00000010: 6E 00 74 00 EF BF BD 00 62 00 69 00 6C 00 0D 00 n.t.o?=.b.i.l...
00000020: 0A 00 0D 00 0A 00 47 00 72 00 75 00 70 00 6F 00 ......G.r.u.p.o.