問題タブ [dart-http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3744 参照

dart - Dart http: 新しいアクセス トークンを取得した後に http.Request を再試行すると、「Bad state: Can't finalize a finalized Request」というメッセージが表示される

現在、Flutter の Web API にアクセスしようとしていますが、これには認証用の JWT アクセス トークンが必要です。アクセス トークンは、一定の時間が経過すると有効期限が切れます。

別の更新トークンを使用して、新しいアクセス トークンを要求できます。現在、このアクセス トークンの更新は、リクエストが 401 レスポンスを返すとすぐに実行されます。その後、失敗したリクエストを新しいアクセス トークンで再試行する必要があります

この最後のステップに問題があります。http.BaseRequestは一度しか送信できないようです。新しいトークンで http リクエストを再試行するにはどうすればよいですか?


dart http readmeで提案されているhttp.BaseClientように、認証動作を追加するためにのサブクラスを作成しました。ここに簡略化されたバージョンがあります:

0 投票する
3 に答える
16242 参照

dart - http ライブラリを使用して SocketException をキャッチする方法は?

この問題はすでに他の人によって指摘されています (ここなど)。原因はわかったかもしれませんが、上位httpライブラリを使用する場合、まだ解決策が見つかりません。例えば:

SocketExceptionたとえば、ホストに到達できない場合(私の場合、間違ったホストIP)、スローされた a をキャッチする方法が見つかりません。を でラップするか、 を使用してみawaitましtry/catchFuture.catchError

これは、例外のスタック トレースです。

0 投票する
1 に答える
10969 参照

dart - Flutter は、アセット フォルダーから自己署名証明書を追加します

私のサーバーは、HTTPS API を呼び出すときに自己署名証明書を提供します。フォルダーに証明書ファイルがあり、assetそのパスを参照しましpubspec.yaml た に証明書を渡し、SecurityContextそのコンテキストを使用してHttpClient. しかし、証明書を渡す方法が機能しSecurityContextていません。コードは次のとおりです。

SecurityContextは 2 つの方法があります
。1)useCertificateChain()これはファイル パスを受け入れます。しかし、アセット フォルダー ('assets/raw/certificate.crt') 内のファイルのパスを指定すると、ファイルが見つかりませんと表示されます。
2)useCertificateChainBytes()上記のコードはこのメソッドを使用しています。しかし、これにより(予期しないファイルの終わり)のようなエラーも発生します。

現時点での解決策

を使用してバイパスしていclient.badCertificateCallback = (X509Certificate cert, String host, int port)=> true;ます。

しかし、証明書で動作させたい

0 投票する
0 に答える
353 参照

flutter - 複数の API を要求し、SQLITE 複数のテーブルに保存する最適な方法

質問: sqlite に保存する方法は? 2 つの API データを 2 つのテーブルに保存する方法を教えてください。

データを取得してキャッシュに保存するための複数の API があります。現在、次のように1つずつ実行しています。

ボタンが押されました():

それは私のアプリを遅くします...だから私は@günter-zöchbauerのやり方をすることにしました。( https://stackoverflow.com/a/50028061/9139407 )しかし、SQLiteに複数のテーブルに保存する方法がわかりません。

storeAll()使用済みFuture.wait

印刷はうまくいっています

現在のメソッドで使用する以下の 2 つのメソッド storeRegister()(データを取得してローカルに保存)

storeWquipmentReg()方法