FieldAssist / FieldAssist/fa_flutter_api_client

post() drops responseType — binary (ResponseType.bytes) POSTs silently decoded as JSON

未关闭
#68 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Dart
星标
5
派生
1
PR 合并指标
30 天内没有已合并 PR

描述

## Bug

`ApiServiceImpl.post()` does not forward `responseType` to Dio's `Options`, so any POST issued with `ApiOptions(responseType: ResponseType.bytes)` is silently downgraded to default JSON handling. `get()` forwards it correctly; `post()` does not.

- `lib/src/api_service_impl.dart`
- `get()` forwards it (line ~73): `responseType: options?.responseType,`
- `post()` `Options(...)` (lines ~105-109): **missing**.

## Impact

A binary POST (e.g. fetching a zstd-compressed body via POST) comes back decoded as a JSON string, producing `type 'String' is not a subtype of type 'List?'` at the call site. This blocks any consumer that POSTs expecting `ResponseType.bytes`.

## Fix (one line)

Add to the `post` `Options(...)`, mirroring `get()`:

```dart
responseType: options?.responseType,
```

## Verification

Patching the resolved package copy with that single line makes a downstream binary-POST integration test pass end-to-end over real HTTP; reverting it fails again. No other changes needed. A new version cut after this fix would let consumers bump their pin.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。