如何将该文件流从API转换为PDF或XML文件?

时间:2018-07-03 20:17:23

标签: c# api file filestream

我正在尝试使用API​​下载PDF或Word文档格式的文档。该服务仅提供有关如何构造请求URL的指导。

API在url中提供了xml或json方法,我正在使用xml。

我试图获取字符串并将其解析为XDocument:

        XDocument response;
        using (var webClient = new System.Net.WebClient())
        {
            response = XDocument.Parse(webClient.DownloadString(url));
        }
        Console.WriteLine(response);

我也尝试下载文件:

        using (var webClient = new System.Net.WebClient())
        {
            webClient.DownloadFile(url, filepath));
        }

两者都会产生相同的结果:

%PDF-1.5
%µµµµ
1 0 obj
<</Type/Catalog/Pages 2 0 R/Lang(en-US) >>
endobj
2 0 obj
<</Type/Pages/Count 2/Kids[ 3 0 R 27 0 R] >>
endobj
3 0 obj
<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 7 0 R/F3 9 0 R/F4 11 0 R/F5 13 0 R/F6 21 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 18 0 R 19 0 R 20 0 R 26 0 R] /MediaBox[ 0 0 612 792] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S>>
endobj
4 0 obj
<</Filter/FlateDecode/Length 6592>>
stream
xœÝ=k“Û6’ß]åÿÀOYÍžÍo2ÙrÝ8‰sÙ‡Çn²Æ2=¦­¡|ó°ãÔþøën€/‘ÐH r]¥"%ˆÝht7ú…KÎïÞ:Q™H•0#R©®xš©ä²¼{çå_ïÞùßíC~ùkRÓ“åi.›B¥Fï÷Œ‡ÏîÞùôK¸I<{y÷K2ø%ŒóTfR™'Ï.îÞÉRø,ÉRžkx•Ery>ñá_ß½óÛ"9ùwòìïwï|ÏÿÑ…J‹¼A„ñ4×r®<a,Í䮺ÈS×\¤ïáZÌ"ë6Ts•*UCd
NUÃS„ªÊ¤<.UU‘š T•9)&U¥NMª
–ʸTðû Te9rRLªò•L

以及类似的更多内容。这是非常奇怪的字符,我不确定如何从中解析XML或PDF文档。

1 个答案:

答案 0 :(得分:0)

您可以将HttpClient用于异步请求Httpclient是一个更好的选择,而不是webclient

 public static async Task get()
    {
            HttpClient _httpClient = new HttpClient())
            string url = "https://someurl.com";
            var result = await _httpClient.GetAsync($"{url}");

            // contents to a log file
            string resultContent = await result.Content.ReadAsStringAsync();
            File.WriteAllText("D://dT.pdf", resultContent);
            // ... write to log
    }