4

私はこの単純なダーツスニペットを持っています:

import 'package:http/http.dart' as http;

Client _http = new BrowserClient();

final response = await _http
      .post(url, headers: someHeader, body: someValue);

現在のリクエストのサーバーは、Bad Request 400レスポンスを返します。何らかの理由でステータスコードを取得できるようにしたい。_http.postしかし、 get が呼び出されるとすぐに、次のエラーが発生します。

POST http://localhost/path 400 (Bad Request)

try/catchキャッチされた例外にはClientExceptionステータスコードとレスポンスボディに関する情報がないため、ブロックを配置しても役に立ちません(ここで重要です)。ここで例外をスローせずにステータスコードを処理するにはどうすればよいですか?

アップデート:

私は呼び出し後にこのスニペットを持ってい_http.post()ます:

if (response.statusCode == 400) {
  //  manage bad request
}

しかし、responsenullであるため、statusCodeここでは にアクセスできません。

更新 2: サーバーでリクエストを取得し、サーバーでトレースできます。前述したように、サーバーは400 Bad Request応答を送信しており、正常に動作しています。しかし、Dart で応答を取得するとエラーが発生します。

4

2 に答える 2