Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改装2.0b2:如何从响应中获取InputStream?_Java_Android_Retrofit_Okhttp - Fatal编程技术网

Java 改装2.0b2:如何从响应中获取InputStream?

Java 改装2.0b2:如何从响应中获取InputStream?,java,android,retrofit,okhttp,Java,Android,Retrofit,Okhttp,我正在使用改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream: Response<JsonNode> response = call.execute(); InputStream is = response.raw().body().byteStream(); 尽管响应返回正确。我在这里做错了什么?如果您想要原始流,请告诉改造返回一个OkHttp响应库 import okhttp3.ResponseBody; import retrofit2.Res

我正在使用改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream:

Response<JsonNode> response = call.execute();
InputStream is = response.raw().body().byteStream();

尽管响应返回正确。我在这里做错了什么?

如果您想要原始流,请告诉改造返回一个OkHttp
响应库

import okhttp3.ResponseBody;
import retrofit2.Response;

Response<ResponseBody> response = call.execute();
try ( ResponseBody responseBody = response.body() ) {
    InputStream is = responseBody.byteStream();
    // ...
}
导入okhttp3.responsebook;
2.回应;;
Response=call.execute();
try(ResponseBody ResponseBody=response.body()){
InputStream is=responseBody.ByTestStream();
// ...
}
记住也要更新你的界面


。因此上面的代码使用了try-with-resources语句。

很明显,问题在于您得到的响应类型是
JsonNode
,而不是没有自动转换的响应(因为自动转换从流中读取,字节流中没有任何内容)。尝试
响应
?尝试过,没有。无论是“JsonNode”还是“Void”或“Object”,仍然失败。谢谢@iagreen,您的答案绝对正确。我很难找到正确的方法将
ResponseBody
转换为原始json来继续我的工作。谢谢=)
import okhttp3.ResponseBody;
import retrofit2.Response;

Response<ResponseBody> response = call.execute();
try ( ResponseBody responseBody = response.body() ) {
    InputStream is = responseBody.byteStream();
    // ...
}