.NET Maui HttpClient 文件上传 - 流意外结束

问题描述 投票:0回答:1

我正在开发一个 .NET MAUI 应用程序。当我尝试在 Android 上调试它时,出现错误

unexpected end of stream
。我正在 Android 模拟器 (API 34) 中运行。这是我的上传代码。知道为什么会发生这个错误吗?知道如何修复错误吗?我尝试调试我的 API 端点,但我的代码从未从设备中出来,因为我的断点未在 Azure 中命中。 TIA

var url = CreateUrl(userPicManagement);
var httpC = new MyHttp();
var content = new MultipartFormDataContent();
var inputData = new StreamContent(stream);
content.Add(inputData, "file");
var response = await httpC.PostAsync(url, content);
        

这是我使用的

HttpClient
。我添加了几个标题。我将这个
HttpClient
调用与其他方法一起使用,没有遇到问题。

public class MyHttp : System.Net.Http.HttpClient {
    
    public MyHttp(string tok = null) {
        this.DefaultRequestHeaders.Add(xxxx, yyyyy);
        if(!String.IsNullOrEmpty(tok)) {
            var str = String.Format("Bearer {0}", tok);
            this.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tok);
        }
    }
}
c# .net-core maui
1个回答
0
投票

我认为问题在于 Android 上的默认

HttpClient
配置向服务器发送了无效的
Content-Type
标头;与
StreamContent
ByteArrayContent
值类型不对应的类型。

对我有用的解决方案是以不同方式配置

HttpClient

var client = new HttpClient(new SocketsHttpHandler()));

https://blog.lhotka.net/2024/04/18/Posting-binary-data-using-HttpClient-on-Android

© www.soinside.com 2019 - 2024. All rights reserved.