Unicode Проблема, когда я делаю HTTP-запрос [C #] - PullRequest
0 голосов
/ 12 февраля 2020

Я делаю запрос, используя Azure Функции для Power BI REST API через официальную библиотеку C#. Я хочу экспортировать отчет. Я сделал это в Microsoft Flow, и я знаю, что запрос возвращает, и это JSON, где тело выглядит примерно так:

"Date":"Tue, 11 Feb 2020 15:50:09 GMT","Content-Type":"application/zip","Content-Length":"7700892"},"body":{"$content-type":"application/zip","$content":"UEsDBBQAAAAIADJ+S1A813PJCgAAAAgAAAAHABwAVmVyc2lvbiCiGAAooBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAzZNBjMGQwZwAAUEsDBBQAAAAIADN+S1AvYh6m6wAAAG8CAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbCCiGAAooBQAAAAAAAAAAAAAAAAAAAAAAAAAAACVkkFOwzAQRa9ied86sEAIJakE7Y4Cooj9yJkkpvHYsseoORsLjsQVcMkayV165v35f2z/fH3Xm5OdxCeGaBw18mpdSYGkXWdoaGTifnUrN239NnuMIqMUGzky+zulo

Но вместо этого это кусок того, что я получаю через HTTP-запрос.

"Content-Type":"application/json; charset=utf-8","Expires":"-1","Content-Length":"18272354"},"body":"PK\u0003\u0004\u0014\u0000\u0000\u0000\b\u0000!�KP<�s�\n\u0000\u0000\u0000\b\u0000\u0000\u0000\u0007\u0000\u001c\u0000Version �\u0018\u0000(�\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00003d�c0d0g\u0000\u0000PK\u0003\u0004\u0014\u0000\u0000\u0000\b\u0000!�KP/b\u001e��\u0000\u0000\u0000o\u0002\u0000\u0000\u0013\u0000\u001c\u0000[Content_Types].xml �\u0018\u0000(�\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000��AN�0\u0010E�by�:�@\b%�\u0004�\u0002���ș$��زǨ9\u001b\u000b��\u0015p�\u001a�]z���l�|}כ���'�h\u001c5�j]I��]ghhd�~u+7m�6{�\"�\u0014\u001b92�;��\u001e�B\\;��;�\u000b\u00168\u001fà<�#\f����FiG��+>ϐm��\u001e��bw����#:��a\u0001�^��B��s\u000e\u0016L��\u0005\u0002?��u��d-ŷ���8&��u8\u0015\u000b\f\f\u0001�#�.q��\u0015�\u000b�.\u0013\u001d�9?L,�����uJ�L\u0011j��[lq@�����P�_4��}�_PK\u0003\u0004\u0014\u0000\u0000\u0000\b\u0000!�KP�\u0007�q�\u0

Предполагается, что я запрашиваю то же самое, но кажется, что с потоками я получаю приложение / zip, в то время как на Azure Функции Я получаю приложение / json, и, согласно Visual Studio, функция Export дает нам объект System.IO.Stream, я не уверен, правильно ли я отношусь к ответу, Это то, что я делаю:

var report = await exportReport(client, REPORT_ID);
StreamReader reader = new StreamReader( report );
string text = reader.ReadToEnd();

Это exportReport метод, который я сделал:

public static async Task<Stream> exportReport(PowerBIClient PBIClient, String reportId){
    var myTask = Task.Run(() => 
        PBIClient.Reports.ExportReport(reportId)
    );
    var x = await myTask;
    return x;
}

Я не уверен, если мое предположение, что проблема string text = reader.ReadToEnd(); правильно, если это так, как правильно превратить поток в почтовый индекс? Я не уверен, что это возможно, я не знаком с C# и делаю это всего несколько дней.

Спасибо,

...