Android:最好的文件HTTP库是什么?



大家好!

我正在做一个android项目(java),另一个人在做server-side(php)。在我的应用程序中,我需要调用POSTGET方法,以便upload files to server, download files, send Strings, byte[] array etc

我的问题是:在我的情况下,最好的库是什么?(我想我的文件不会超过3mb)

我是android新手,所以我一直在尝试:

1。 Android Asynchronous Http Client (com.loopj.android:android-async-http:x.x.x)-我们放弃了这个,因为它不是来自一个"可信"的来源

2。 AsyncTask+HttpClient+HttpPost我们也放弃了这个

3。 Volley library-目前为止最好的(字符串,图像请求),但它需要额外的库发送图像到服务器(org.apache.httpcomponents:httpmime:4.5)-我从这里跟随了这样的例子,但我得到了异常,错误,库错误(重复),从来没有设法解决一个没有其他显示。-所以我也放弃了这个

My question posted for volley library here

4。现在我正在考虑使用Retrofit,但不知道它适合我的需要:发送字符串和所有类型的原始数据-发送图像到服务器(与Api key一起)-从服务器下载图片

告诉我,如果我错了,或者如果我错过了与上面指定的库一起工作的东西。我设法用所有这些发送简单的数据,但我没有设法发送Files (loopj库除外)。

你认为我应该回到Volley,还是开始阅读Retrofit ?Volley似乎是最灵活的一个,但不是uploading files

欢迎任何参考或建议!提前感谢!

更新:我找到了一个可能的解决方案:-I将我的文件/图像转换为byte arrayencodebase64 string-I发送字符串到服务器作为基本的StringRequestHashMap<String,String>(使用谷歌开发人员的Volley库)-服务器解码字符串保存文件

我认为一个非常适合你的是AndroidAsync。你可以在他们的GitHub仓库中找到更多信息:https://github.com/koush/AndroidAsync

关于如何上传文件到服务器的示例:

AsyncHttpPost post = new AsyncHttpPost("http://myservercom/postform.html");
MultipartFormDataBody body = new MultipartFormDataBody();
body.addFilePart("my-file", new File("/path/to/file.txt");
body.addStringPart("foo", "bar");
post.setBody(body);
AsyncHttpClient.getDefaultInstance().execute(post, new StringCallback() {
    @Override
    public void onCompleted(Exception e, AsyncHttpResponse source, String result) {
        if (e != null) {
            ex.printStackTrace();
            return;
        }
        System.out.println("Server says: " + result);
    }
});

还有NanoHTTPD,您可以在这里找到:https://github.com/NanoHttpd/nanohttpd

你应该试试HttpURLConnection,它真的很容易发送数据到服务器。

https://developer.android.com/training/basics/network-ops/connecting.html

最新更新