android-async-http上传文件的原理是什么?

what's the principle of uploading a file in android-async-http?

我在使用 android-async-http 时遇到了问题。看完源码,我知道了如何将一个File或InputStream作为参数添加到RequestParam中。然后 RequestParam 将被转移到一个 AsyncHttpClient 中,它将使用 RequestParam 到 get/put/post...就像这样:

String url = ...;
File file = ...;
ResponseHandlerInterface respHandler = ...;
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.add("upload_file", file);
client.get(url, params, respHandler);

众所周知,任何类型的文件本质上都是比特。因此,当通过互联网传送时,文件可以传输到字节流中。但是我没有找到关于这个转换的任何代码。所以,我想知道 android-async-http 是如何完成的,还是我在阅读源代码时遗漏了什么?

我以为我找到了 android-async-http 处理 files/inputstreams 的方式。上传文件取决于put(?)/post(?)的调用,而不是get(?)。通过搜索 put(?)/post(?) 的覆盖方法,您会发现 paramsToEntity(RequestParams, ResponseHandlerInterface) 将 return 和 HttpEntity。然后,HttpPost/HttpPut 将 setEntity(HttpEntity)。因为get(?)s不支持上传文件,所以在get(?)s中找不到关于上传文件的操作。