标签: android-volley

Android的Volley库解析xml响应?

我正在使用齐射库并在XML中获得响应.我想知道如何使用/ volley库解析响应.谢谢.

android-volley

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

com.android.volley.ParseError:org.json.JSONException

我从凌空库中得到了这个错误

@Override
public void onErrorResponse(VolleyError error) {
    error.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

错误

com.android.volley.ParseError: org.json.JSONException: Value [{"id":"admin","name":"Admin"}] of type org.json.JSONArray cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)

如何以字符串形式接收结果然后我将使用jackson处理它?

android jackson android-volley

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

如何从VolleyError获取响应代码?

我正在寻找一种方法来获取抛出的VolleyError的响应代码.我的ErrorListener看起来像这样:

Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
        //Get response code here
        VolleyLog.e("Error: ", error.toString());
        VolleyLog.e("Error: ", error.getLocalizedMessage());
    }
};
Run Code Online (Sandbox Code Playgroud)

我发送给我的VolleyLog的2行打印如下:

03-12 10:57:56.932: E/Volley(7147): [1] 1.onErrorResponse: Error: 
03-12 10:57:56.932: E/Volley(7147): [1] 1.onErrorResponse: Error: 
Run Code Online (Sandbox Code Playgroud)

Volley确实知道回来的原因,因为我也能在VolleyLog中看到以下内容:

03-12 10:57:56.692: E/Volley(7147): [41854] BasicNetwork.performRequest: Unexpected response code 403 for https://*******/Employee/authenticate
03-12 10:57:56.897: E/Volley(7147): [41854] BasicNetwork.performRequest: Unexpected response code 403 for https://*******/Employee/authenticate
03-12 10:57:56.902: W/System.err(7147): com.android.volley.AuthFailureError
03-12 10:57:56.902: W/System.err(7147):     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:143)
03-12 10:57:56.902: W/System.err(7147):     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想要的是获得响应代码"403"(禁止).

java networking android httpresponse android-volley

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

仅在Android而非iOS上使用"Volley"进行服务器请求超时

在我的一个应用程序中,我使用Googlevolley提供的服务器发送请求.

问题:超时和错误对象为空 onErrorResponse(VolleyError error)

到目前为止我尝试了什么:

1)首先我得到了null错误对象,所以使用下面的代码解决了它:

 @Override
 protected void deliverResponse(String response) {
    super.deliverResponse(response);
 }

 @Override
 public void deliverError(VolleyError error) {
     super.deliverError(error);
     DebugLog.e("deliverResponse", "getNetworkTimeMs : " + error.getNetworkTimeMs());
 }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到了timeout当我得到错误对象时发生的事情null.

2)现在的应用是AndroidiOSweb,但timeout只针对发生Android.

要求的排球日志:

BasicNetwork.logSlowRequests: HTTP response for request
Run Code Online (Sandbox Code Playgroud)

编辑说明:

  1. 在服务器端开发的Web服务对于所有三个实例(Android,Web和iOS)都是相同的.

  2. Timeout 当有太多用户向服务器发出请求时发生.

  3. 我已经设定了2分钟的时间,但有时只有30秒的凌空抽射超时.

  4. 我有很多答案来改变服务器,但因为它是不可能所以任何其他解决方案请.

我还想补充一点,如果我能获得更多关于何时可以超时的超时的信息?

参考文献我经历过:

优化排球

HttpClient的,经常超时的-使用-WiFi的是持续的,细带-3G

long_xmlhttprequest_ajax_requests_timeout_on_android

编辑:

我还设置了重试政策如下:

request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48,
                0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Run Code Online (Sandbox Code Playgroud)

而且我也不想在连接超时时重试.

如何才能进行有效的服务调用,以解决问题timeout.

任何帮助都会得到满足.

谢谢.

android timeout http web android-volley

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

使用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给了我一个outOfMemory异常

我正在使用凌空从服务器在水平滑动视图中显示图像,但我的图像非常大,这是我得到一个例外的内存不足

以下是我的排球班:

public class Volley{

private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;

public Volley(Context ctx) {
    Log.v("Volley", "Volley onCreate");
    mRequestQueue = com.android.volley.toolbox.Volley.newRequestQueue(ctx);

    final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
    final int cacheSize = maxMemory / 8;

    ImageLoader.ImageCache imageCache = new ImageLoader.ImageCache() {
        LruCache<String, Bitmap> imageCache = new LruCache<String, Bitmap>(cacheSize);

        @Override
        public void putBitmap(String key, Bitmap value) {
            imageCache.put(key, value);
        }

        @Override
        public Bitmap getBitmap(String key) {
            return imageCache.get(key);
        }
    };

    mImageLoader = new ImageLoader(mRequestQueue, imageCache);

}

public void clear(Context ctx) …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory android-volley

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

排球 - 如何发送DELETE请求参数?

我正在尝试使用Volley向我的服务器发送DELETE类型请求并向请求添加参数.到目前为止,我还没有这样做.

创建自定义请求并覆盖getParams()方法对我没有帮助,因为不会为DELETE类型请求调用此方法.

如何在Volley中为DELETE请求添加参数?

parameters android request android-volley

10
推荐指数
1
解决办法
8386
查看次数

使用getHeader和getParams时,Volley Post JsonObjectRequest忽略参数

我正在尝试连接API url ="api adress",它接受两个头类型application/json来响应json和application/xml以在xml中重新定义.我需要使用json参数命中JSON,并且响应也将采用json格式.使用android volley Post请求和JsonObjectRequest设置头使用getHeaders它连接到服务器但getParams设置参数不起作用.

RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
            Constants.BASE_URL + Constants.LOGIN, null, response,
            response_error) {
        /**
         * Passing some request headers
         * */
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json");
            return headers;
        }
         @Override
         protected Map<String, String> getPostParams()
         throws AuthFailureError {
         // TODO Auto-generated method stub
            Map<String, String> params = new HashMap<String, String>();
            params.put("key", "value");
            return params;
         }
    };
    // implementation of listeners …
Run Code Online (Sandbox Code Playgroud)

post android json content-type android-volley

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

我如何在Volley Library中获得Inpustream作为响应

我在应用程序中使用Volley库.

在onresponse listener中我需要InputStream作为响应

我怎么得到它?

android inputstream httpclient android-volley

10
推荐指数
1
解决办法
6491
查看次数

Android Volley Null指针异常

我正在尝试将以前基于活动的教程转换为片段,但我继续在我的适配器上遇到NullPointerException错误.

本教程基于,我已经缩减了适配器的构造函数,因为它曾经调用了一个Activity.

这里有一种可能的解决方案,但没有人知道如何处理同样可能的问题.

我想将所有内容转换为工作片段.如果您需要我提供更多信息,请与我们联系.

主要转换类:

public class mainViewController2 extends Fragment {
    private static final String TAG = mainViewController2.class.getSimpleName();
    private ListView listView;
    private FeedListAdapter listAdapter;
    private List<FeedItem> feedItems;
    private String URL_FEED = "http://api.androidhive.info/feed/feed.json";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.mainviewcontroller2_fragment, container, false);

        listView = (ListView) v.findViewById(R.id.list);

        feedItems = new ArrayList<FeedItem>();


        //where the error shows up?
        listAdapter = new FeedListAdapter(feedItems);
        listView.setAdapter(listAdapter);



        // We first check for cached request
        Cache cache = …
Run Code Online (Sandbox Code Playgroud)

java android json android-fragments android-volley

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