微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webResponse 响应不完整 pdf

如何解决webResponse 响应不完整 pdf

我正在发送 webRequest 并从中获得 PDF 响应,但我得到的响应未满。似乎 webResponse 只给我几行 PDF。当我在“邮递员”中发出相同的请求时,我收到了将近 900 行的响应,但是从我的代码中的 webRequest 中我只收到了几行。看起来响应突然停止并“终止”数据传输,并且没有收到完整的 pdf。当我打开文件时,它是空白的 pdf,里面没有数据。这是我的代码

[HttpGet]
public FileContentResult GenerateBarcodePDF(string barcode)
{
    var partner = _settingService.GetSetting("venisettings.username")?.Value;
    var bytes = GetBarcode(barcode,partner);
    var labelName = barcode + ".pdf";
    var file = File(bytes,"application/pdf",labelName);

    return file;
}
public byte[] GetBarcode(string barcode,string partner)
{
    byte[] content = new byte[64];
    WebRequest quotesrequest = WebRequest.Create("https://someurlineed");
    string data = "user=myusername&pass=mypass&pack_no[]=" + barcode + "&type=a4";
    byte[] dataStream = Encoding.UTF8.GetBytes(data);
    quotesrequest.Method = "POST";
    quotesrequest.ContentType = "application/x-www-form-urlencoded";
    Stream newStream = quotesrequest.GetRequestStream();
    newStream.Write(dataStream,dataStream.Length); // Send the data.
    newStream.Close();

    Response.Headers.Add("Content-disposition","attachment; filename=\"label.pdf\"");
    Response.Headers.Add("Content-transfer-encoding","binary");
    Response.Headers.Add("Content-Type","application/pdf");
    Response.Headers.Add("Keep-Alive","timeout=5,max=300");
    Response.Headers.Add("Connection","Keep-Alive");

    WebResponse webResponse = quotesrequest.GetResponse();
    Stream stream = webResponse.GetResponseStream();
    StreamReader streamreader = new StreamReader(stream);
    string responseFromServer = streamreader.ReadToEnd();

    var plainTextBytes = Encoding.UTF8.GetBytes(responseFromServer);
    var bytesINee = Convert.ToBase64String(plainTextBytes);

    if (!string.IsNullOrWhiteSpace(responseFromServer))
    {
        content = Convert.FromBase64String(bytesINee);
        return content;
        throw new Exception("something bad happened");
    }
    return content;
}

最后我得到了空白的 PDF 文件,里面什么也没有。这是我在“邮递员”中得到的回复时间:

postman response

这就是我在“webResponse”中的内容

webresponse

也许有人可以告诉我,我错过了什么?为什么看起来 weResponse 开始接收良好的数据并突然停止:/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。