java - 有没有办法从 okhttp3 的失败中获取原始的 http 发布消息?

标签 java okhttp

    Request request = new Request.Builder()
            .url("http://example.com")
            .post(RequestBody.create("foo",MediaType.get("text/plain")))
            .build();
client.newCall(request).enqueue(new Callback() {
             
                @Override
                public void onFailure(Call call, IOException e) {
                    //e.printStackTrace();
                    RequestBody b = call.request().body();
                    String t= b.toString(); ??? <-How would I get the original message?
                }

                @Override
                public void onResponse(Call call, Response response) throws IOException {
                    //do something
                     
                }
            });

如果失败,我会尝试保存我发送的原始消息。

我查看了这些函数,但似乎无法弄清楚如何获取我在回调中发送的原始消息。有没有办法取回消息?

最佳答案

如果有人正在寻找这个:

Buffer b = new Buffer();
call.request().body().writeTo(b)
String result=b.readString(Charset.defaultCharset()); //Change this to whatever your character set is

关于java - 有没有办法从 okhttp3 的失败中获取原始的 http 发布消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66179933/

相关文章:

java - 多个线程获取同一个监视器?

android - Okhttp 在与 Retrofit RxJavaCallAdapterFactory 一起使用时忽略 Dispatcher 设置

android - 首先叫什么 - 拦截器或验证器? OkHttp,改造

Java方法重写equals方法

java - 嗨,我想弄清楚如何将字符串从一个类传递到另一个类

java - 如何避免 java 中的重复枚举值?

java - 如何在shell中获取java输出

java - okhttp3 MediaType.parse 致命异常 : java. lang.IncompatibleClassChangeError

java - retrofit 时禁用 SPDY 连接

java - OkHttp spdy 支持吗?响应.协议(protocol)()