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 摘要。