gpt4 book ai didi

c# - 使用 GET 请求跨 2 个 API 下载 PDF

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:22 25 4
gpt4 key购买 nike

我正在尝试通过 GET 请求下载跨越两个 API 的 PDF 文件。

如果我直接转到 API2,则可以使用以下代码下载 PDF:

Stream fileStream = File.Open(fileLocation, FileMode.Open);
result.Content = new StreamContent(fileStream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "test.pdf"
};
return result;

然而,当我将 API1 加入混合时,事情变得有点不稳定!!

using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
var httpRequestMessage = new HttpRequestMessage();
httpRequestMessage.Method = HttpMethod.Get;
httpRequestMessage.RequestUri = new Uri(requestUrl);
HttpResponseMessage response = await client.SendAsync(httpRequestMessage);

if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var content = await response.Content.ReadAsStringAsync();
response.Content = new StringContent(content);
response.EnsureSuccessStatusCode();
response.Content.Headers.ContentEncoding.Add("UTF8");
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "test.pdf"
};
return response;

直接转到 API2 会产生:%PDF-1.6%âãÏÓ

通过 API2 产生:%PDF-1.6%����

我试过在 API1 上更改 ContentType 和 ContentEncoding,但没有成功。

有没有人突然想到了什么?

最佳答案

在二进制文档上调用 .ReadAsStringAsync 将不起作用 - 您必须调用 .ReadAsByteArrayAsync。您还必须使用 ByteArrayContent 而不是 StringContent

未测试

关于c# - 使用 GET 请求跨 2 个 API 下载 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46121100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com