Here's the stack trace I get from the `ApiBadRequest` test I added when the exception message is `@response.body`:

```
test_send_with_bad_request(TestApiRequest) [/Users/jacobevelyn/Documents/Panorama/sendwithus_ruby/test/lib/send_with_us/api_request_test.rb:54]:
[SendWithUs::ApiBadRequest] exception expected, not
Class: <NoMethodError>
Message: <"undefined method `closed?' for nil:NilClass">
---Backtrace---
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:325:in `stream_check'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:199:in `read_body'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:226:in `body'
/Users/jacobevelyn/Documents/Panorama/sendwithus_ruby/lib/send_with_us/api_request.rb:50:in `request'
/Users/jacobevelyn/Documents/Panorama/sendwithus_ruby/lib/send_with_us/api_request.rb:16:in `post'
/Users/jacobevelyn/Documents/Panorama/sendwithus_ruby/test/lib/send_with_us/api_request_test.rb:54:in `block in test_send_with_bad_request'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:370:in `assert_raises'
/Users/jacobevelyn/Documents/Panorama/sendwithus_ruby/test/lib/send_with_us/api_request_test.rb:54:in `test_send_with_bad_request'
/Users/jacobevelyn/.gem/ruby/2.0.0/gems/mocha-0.10.5/lib/mocha/integration/mini_test/version_230_to_262.rb:28:in `run'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:919:in `block in _run_suite'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:912:in `map'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:912:in `_run_suite'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:899:in `block in _run_suites'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:899:in `map'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:899:in `_run_suites'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:867:in `_run_anything'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:1060:in `run_tests'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:1047:in `block in _run'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:1046:in `each'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:1046:in `_run'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:1035:in `run'
/Users/jacobevelyn/.rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/minitest/unit.rb:789:in `block in autorun'
---------------
```

I don't know anything about `Net` though so there could be another way to do this. I haven't been able to find any documentation on how to avoid this error, but the offending line is here: https://github.com/ruby/ruby/blob/trunk/lib/net/http/response.rb#L325

Do you have an idea of what sort of request could yield a 400 error?