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中找不到关于上传文件的操作。
我在使用 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中找不到关于上传文件的操作。