Require 200 HTTP status and a supported Content-Type
header to be present in a response.
When handling malformed responses make effort
to translate HTTP statuses into gRPC statuses as
gRPC protocol specification recommends.
Fixes#421Fixes#458
Co-authored-by: Vyacheslav Egorov <vegorov@google.com>
* Improve error handling
1) Let GrpcError implement exception
As the user is (usually) expected to catch these they should implement
Exception.
There is a bigger clean-up in splitting off the GrpcError.internal as
that seems to be for invariant violations
2) Convert some thrown strings into exceptions.
Split the large client/server.dart files into smaller pieces. This is in
preparation for splitting the HTTP/2 dependencies into a separate file
and make it easier to implement other transports.