发出HTTP请求时出现Unicode问题[C#]

时间:2020-02-11 23:18:01

标签: c# unicode stream

我正在通过使用Azure函数通过官方C#库向BI BI REST API发出请求。 我想要的是导出报告。我已经在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

假设我正在请求相同的内容,但是似乎使用Flows我正在接收应用程序/ zip,而在Azure函数上我正在接收应用程序/ json,并且根据Visual Studio,导出功能给我们一个 System.IO.Stream objecct,我不确定是否正确处理了响应,这就是我在做什么:

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();的假设是否正确,如果正确,将Stream转换为zip的正确方法是什么?我不确定是否可行,我对C#不熟悉,而我只是几天而已。

谢谢

0 个答案:

没有答案
相关问题