相关疑难解决方法(0)

使用Volley和没有HttpEntity工作POST多部分请求

这不是一个真正的问题,但是,我想在这里分享一些我的工作代码供您参考.

据我们所知,HttpEntityAPI22已弃用,自API23以来已完全删除.目前,我们无法再访问Android Developer上的HttpEntity Reference(404).因此,以下是我使用Volley和没有HttpEntity的POST多部分请求的工作示例代码.它正在运行,经过测试Asp.Net Web API.当然,代码可能只是发布两个现有可绘制文件的基本示例,也不是所有情况下的最佳解决方案,也不是很好的调优.

MultipartActivity.java:

package com.example.multipartvolley;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

import com.android.volley.NetworkResponse;
import com.android.volley.Response;
import com.android.volley.VolleyError;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;


public class MultipartActivity extends Activity {

    private final Context context = this;
    private final String twoHyphens = "--";
    private final String lineEnd = "\r\n";
    private final String boundary = …
Run Code Online (Sandbox Code Playgroud)

java android asp.net-web-api android-volley httpentity

103
推荐指数
3
解决办法
7万
查看次数

使用Android SDK发布多部分请求

我正在尝试做一些我认为相对简单的事情:使用Android SDK将图像上传到服务器.我找到了很多示例代码:

http://groups.google.com/group/android-developers/browse_thread/thread/f9e17bbaf50c5fc/46145fcacd450e48

http://linklens.blogspot.com/2009/06/android-multipart-upload.html

但是对我来说都不起作用.我一直遇到的困惑是制作多部分请求真正需要的东西.Android的多部分上传(带图片)的最简单方法是什么?

任何帮助或建议将不胜感激!

android http multipartform-data android-sdk-2.1

78
推荐指数
4
解决办法
13万
查看次数

如何使用Android Volley进行多部分数据

我正在使用Volley为我的应用程序调用Web请求.但是,因为我是第一次排球.我只是想知道如何使用multipart通过凌空上传图像/视频媒体数据.

我搜索了很多网站,我得到了一些结果

如何使用Volley在Android中发送"multipart/form-data"POST

但是,这些方法看起来不好或有效.那么,请帮助我如何使用凌空上传媒体数据.或者我不应该使用Volley,应该采用以前的手动方法

无论如何,所有的想法和答案都非常感激.谢谢您的帮助.

performance android android-volley

29
推荐指数
2
解决办法
2万
查看次数

如何使用Android中的Volley库上传文件?

我已经有一个Request子类用于http发送到服务器.问题是,我不知道如何为文件添加参数.将字符串发布到服务器很容易.但我需要将文件添加为不同的参数.我该怎么做?

public class AddNewPetRequest extends Request<JSONObject> {

    private Response.Listener<JSONObject> listener;

    public AddNewPetRequest(String url, Map<String, String> params,
                                Response.Listener<JSONObject> reponseListener, Response.ErrorListener errorListener) {
        super(Request.Method.GET, url, errorListener);
        this.listener = reponseListener;
        this.params = params;
    }

    public AddNewPetRequest(int method, String url, Map<String, String> params,
                                Response.Listener<JSONObject> reponseListener, Response.ErrorListener errorListener) {
        super(method, url, errorListener);
        this.listener = reponseListener;
        this.params = params;
    }

    protected Map<String, String> getParams()
            throws com.android.volley.AuthFailureError {
        return params;
    };

    @Override
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
        try {
            String jsonString = new String(response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(new …
Run Code Online (Sandbox Code Playgroud)

android file http-post httprequest android-volley

17
推荐指数
1
解决办法
5万
查看次数

使用Base64将Android映像上传/下载到JSON会导致内存不足错误

我目前编码和解码图像到Base64.我通过使用流将图像编码为字符串来克服OOM的初始问题.

我现在的问题是我无法理解如何通过Gson将多个分辨率图像(5620 x 3747 - 4.92MB或3264 x 1836 - 1.35MB)的多个Base64编码字符串添加到JSON对象.目前Gson仅使用来自5312 x 2988 - 4.95 MB映像的2个Base64字符串抛出OOM异常.

我知道android可能只能为每个应用程序节省16/20Mb,因此这种转换必须超过限制.

如何将流中的Base64字符串写入JSON对象,该对象将包含发布到我的服务器所需的特定值?

是否更容易更改我的服务器以接受多部件请求而不是基于JSON的POJO与多个Base64字符串?我目前使用的是Volley,并没有官方的多部分请求以及IO流.

如果是压缩问题,在编码到Base64字符串之前,我应该对图像应用多少压缩?理想情况下,我希望失去任何质量但具有最佳压缩级别.

更多信息

我正在上传多个不同分辨率的图像,因为它是兼容性的测试.例如,我发送的所有图像都是在低分辨率和极高分辨率的设备上拍摄的,因为我的应用依赖于这些图像的功能.我试图证明我的应用程序可以处理任何图像(在某种程度上,主要是在移动设备上捕获的图像).

我知道有些图像可能太大,以至于将它们加载到内存中会导致异常.这是我稍后会尝试处理的.

在某些情况下,将上传的图像可以从1到200.

我正在努力寻找能够很好地扩展的最佳解决方案.

base64 android image gson android-volley

11
推荐指数
1
解决办法
2142
查看次数

如何在Android Volley中使用setEntity?

在httpPost中我们setEntity(new StringEntity).但我现在正在使用凌空抽射.我想在排球中使用那个setEntity方法.我怎样才能做到这一点?

我想像Twitter api一样使用它;

HttpPost httpPost = new HttpPost(TwitterTokenURL);
httpPost.setHeader("Authorization", "Basic " + base64Encoded);
httpPost.setHeader("Content-Type", "application/x-www-form-  urlencoded;charset=UTF-8");
httpPost.setEntity(new StringEntity("grant_type=client_credentials"));
Run Code Online (Sandbox Code Playgroud)

apache android android-volley

6
推荐指数
1
解决办法
2061
查看次数

如何使用 Volley 库上传图片?

我有一个图像,我想使用 Volley 库将这个图像上传到我的网络服务,问题是我正在寻找如何去做但仍然没有找到。

我找到了这个,但对我不起作用:http : //develop-for-android.blogspot.com.br/2014/01/using-volley-in-your-application.html

我怎样才能做到这一点 ?

我正在尝试这个。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        fotoPerfil = cursor.getString(columnIndex);
        cursor.close();

        ImageView imageView = (ImageView) findViewById(R.id.imgView);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

    }     
}

UploadoImageToServer upload = new UploadoImageToServer();   
ApplicationController app = new …
Run Code Online (Sandbox Code Playgroud)

android json android-volley

5
推荐指数
1
解决办法
2万
查看次数

Volley:MultipartRequest.getBody:写入ByteArrayOutputStream的IOException

我正在使用Volley进行API调用.我需要将图像发布到我的服务器上.

我尝试了很多MultipartRequest实现,无效.

我刚尝试使用如何通过AZ_ 在Android中使用Volley发送"multipart/form-data"POST中的示例.

但我得到MultipartRequest.getBody:IOException写入ByteArrayOutputStream错误.

你可以帮我解决我的代码,或者知道使用Volley上传图像的任何完整示例.谢谢.

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.util.CharsetUtils;

import com.android.volley.AuthFailureError;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyLog;


//Code by:
//https://stackoverflow.com/questions/16797468/how-to-send-a-multipart-form-data-post-in-android-with-volley
//AZ_
//

/**
 * Problems : E/Volley? [17225] MultipartRequest.getBody: IOException writing to ByteArrayOutputStream
 */
public class MultipartRequest extends Request<String> {

    MultipartEntityBuilder entity = MultipartEntityBuilder.create();
    HttpEntity httpentity;
    private String FILE_PART_NAME = …
Run Code Online (Sandbox Code Playgroud)

java android http android-studio android-volley

5
推荐指数
0
解决办法
2752
查看次数

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

嘿伙计们!

我有一个jpg image stored on my device我想要sent it to server(mywebsite.com/api.php)。我想使用volley library它是因为它是由 google 的官方 android 开发人员制作的,我认为他们会尽快将它添加到 sdk 中。

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

 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, …
Run Code Online (Sandbox Code Playgroud)

android jpeg android-networking android-volley

5
推荐指数
1
解决办法
2万
查看次数

在不使用HttpEntity的情况下使用Volley发布Multipart

我看过以下帖子: 使用Volley和没有HttpEntity工作POST多部分请求

我的问题是如何包含进度条.

进度条有解决方案,但它们都使用HttpClient,我想避免使用它,因为它已被弃用.

我只是无法弄清楚如何将两者结合起来.

编辑:

我正在寻找一个显示百分比的进度条而不仅仅是一个连续的圆圈.我想要一个带有我想要的栏的例子出现在这里,但是正在使用HTTPClient: 如何使用Volley在Android中发送"multipart/form-data"POST

android android-progressbar android-volley

5
推荐指数
1
解决办法
977
查看次数

在邮递员中获取响应代码200但在Android网络库中没有

我有一个POST方法API,它在Postman中提供了200个响应代码,但在使用Volley甚至在Retrofit2中调用api时却没有.

这是邮差截图:

在此输入图像描述

这是我为Volley库代码所做的:

final String url = "http://xxxxxxxx.com/api/mobile/user/post/";

    StringRequest stringReq = new StringRequest(Request.Method.POST, url,
            new com.android.volley.Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.e("onResponse ===", response + " " );
                }
            },
            new com.android.volley.Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("onErrorResponse ===", error + " " );
                }
            }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("Authorization", "xxxxxxxxxxxxx");
            return params;
        }

        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

android internal-server-error android-volley retrofit2

2
推荐指数
1
解决办法
3944
查看次数

错误:com.android.volley.ParseError:org.json.JSONException:值<!DOCTYPE类型java.lang.String无法转换为JSONObject

JsonParse.Java试图从URL获取json数组对象,但它抛出了Parsing ERROR,
而CountriedBean是我的POJO类.
parse_json只有ListView,而parse_json_view有4个TextView

任何人都可以帮助我................

private List<CountriesBean> cntries= new ArrayList<CountriesBean>();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.parse_json);

            RequestQueue queues = Volley.newRequestQueue(JsonParse.this);

            JsonObjectRequest myRequest = new JsonObjectRequest(Request.Method.GET,
                    "https://github.com/SaiNitesh/REST-Web-services/blob/master/RESTfulWS/json_file.json",
                    null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try{
                                Log.i("myCountries**", "response:" +response);
                            JSONArray countryItems = response.getJSONArray("countryItems");

                            Log.i("myTagx", "response:" +countryItems);

                                for(int i=0; i<countryItems.length();i++){
                                    JSONObject temp= countryItems.getJSONObject(i);

                                    String nm = temp.getString("nm");
                                    String cty = temp.getString("cty");
                                    String hse = temp.getString("hse");
                                    String yrs = temp.getString("yrs");

                                    cntries.add(new CountriesBean(nm, cty, hse, yrs));
                                }
                            } catch(JSONException e){ …
Run Code Online (Sandbox Code Playgroud)

android json android-volley android-json

0
推荐指数
1
解决办法
3132
查看次数