Android Volley Library:如何将图像发送到服务器?

Android Volley Library:如何将图像发送到服务器?,第1张

概述嗨伙计们! 我有一个jpg图像存储在我的设备上,我想将它发送到服务器(mywebsite.com/api.php).我想使用排球库,因为它是由谷歌的官方Android开发人员制作的,我认为他们会尽快将它添加到sdk. 现在我正在使用以下代码将字符串发送到服务器: postRequest = new StringRequest(Request.Method.POST, url, 嗨伙计们!

@H_502_8@

我有一个jpg图像存储在我的设备上,我想将它发送到服务器(mywebsite.com/API.PHP).我想使用排球库,因为它是由谷歌的官方Android开发人员制作的,我认为他们会尽快将它添加到sdk.@H_502_8@

现在我正在使用以下代码将字符串发送到服务器:@H_502_8@

@H_502_8@

postRequest = new StringRequest(Request.Method.POST,url,new Response.Listener<String>() {                @OverrIDe                public voID onResponse(String response) {                    try {                        // code here for response                    } catch (JsONException e) {                        e.printstacktrace();                    }                }            },new Response.ErrorListener() {                @OverrIDe                public voID onErrorResponse(VolleyError error) {                    // code here for error response                }            }    ) {        @OverrIDe        protected Map<String,String> getParams() {            Map<String,String> params = new HashMap<>();            // the POST parameters:            params.put("key","myAPIKey");            params.put("data","stringOfMyData");            return params;        }    };

如何将jpg发送到具有齐射库的服务器?每次我发送的东西,我需要与API密钥一起发送,以便接收服务器的信息,所以我不能改变Map< String,String>映射< String,file>因为我的API密钥是一个字符串.@H_502_8@

我已经读过有一个解决方案可以将我的图像更改为byte []数组,然后将其转换为base64字符串格式,但我希望尽可能避免这种情况.@H_502_8@

有没有其他解决方案发送图像而不将其转换为base64字符串?@H_502_8@

欢迎任何参考或建议!提前致谢!@H_502_8@解决方法 在POST请求中使用多部分支持发送文件.它与HTML表单中的相同.

@H_502_8@

Volley默认没有multipart支持,但它很灵活,所以你可以扩展它的Request类来实现你自己的multipart版本.@H_502_8@

您可以从此要点中找到MultipartRequest类的一个实现,并在您的程序中使用
https://gist.github.com/ishitcno1/11394069@H_502_8@

你可以使用这样的类:@H_502_8@

@H_502_8@

HashMap<String,String> params = new HashMap<String,String>();    String url = "YOUR POST URL";    String image_path = "your local image path";    params.put("your_extra_params","value");    MultipartRequest multipartRequest =            new MultipartRequest(url,params,image_path,new Response.Listener<String>() {                @OverrIDe                public voID onResponse(String response) {                    Log.e(TAG,"Success Response: " + response.toString());                }            },new Response.ErrorListener() {                @OverrIDe                public voID onErrorResponse(VolleyError error) {                    if (error.networkResponse != null) {                        Log.e(TAG,"Error Response code: " +                                error.networkResponse.statusCode);                        try {                    }                    if (error instanceof NetworkError) {                    } else if (error instanceof ServerError) {                    } else if (error instanceof AuthFailureError) {                    } else if (error instanceof ParseError) {                    } else if (error instanceof NoConnectionError) {                    } else if (error instanceof TimeoutError) {                    }                }            });    requestQueue.add(multipartRequest);
总结

以上是内存溢出为你收集整理的Android Volley Library:如何将图像发送到服务器?全部内容,希望文章能够帮你解决Android Volley Library:如何将图像发送到服务器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存