导航:首页 > 操作系统 > androidvolley超时

androidvolley超时

发布时间:2023-08-09 15:08:03

android volley框架淘汰了吗

淘汰策略一般是通过数量或者容量限制。每写一个app都自成一套。此外,一旦我们脱离了程序,我们将不再获得我们Bitmap的元数据,比如请求网络链接,资源描述符等等,而且对于同一个网络请求我们要用单独的装饰器来拦截。当然,之所以列举这些出来,是因为在Volley里面已经很好的解决了这些问题,当你下载了Volley的源码编译以后,你会发现,Volley所涵盖的功能远比你考虑的要多。而且这些东西,已经被很好的封装起来。而且Volley的代码读起来也非常的顺口,并不像Android原生的一些代码一样又臭又长。如果说Volley是一种好的开源框架,不如说Volley是一套现在看起来还不错的设计模式。而且从Volley所提供的有些接口来说,Volley已经将很大部分封装在框架内部,对于api调用者来说,无疑是个福音。

Ⅱ android volley request 有对相应数据进行hander 处理吗

有hander机制的,来完成主要的异步操作. 原生开发中抛开AsyncTask,只有hander机制能显示子线程对于UI线程的操作.

1.volley只适应于8也就是2.2以上的版本,因为其中使用了androidhttpclient

2.volley工作原理:

下面这图是volley的工作原理:

其核心为requestqueue,在其中包含一个CacheDispatcher和若干个networkDispatcher。所有的下载任务都在一个优先级队列中维护,然后会发到cacheQueue,CacheDispatcher不断盯着cacheQueue,进行任务处理,其中的细节见3.若没得到cache,讲任务假如到networkQueue,networkDispatcher不断盯着networkQueue,进行网络请求,其中的细节见4。不管在cacheDispatcher还是networkDispatcher,若得到response,发出给listener接听到。

3.cacheDispatcher工作细节

此处用到了本地的文件缓存,此处设计借鉴了浏览器的缓存设计。会读取response的header请求,根据header的内容设置缓存的过期时间。缓存文件分为两部分,第一部分为存储缓存的头,第二部分就是缓存的实际内容。在读取缓存时,会根据头部过期时间的设置,判断是否需要再发出网络请求。

4.networkDispatcher工作细节

此处是网络请求,这块有两个关键类,一个是BasicNetwork,一个是httpStack。 basicNetwork中包含了httpstack,在httpstack中进行网络请求,然后basicNetwork对得到的response进行了parse和加入文件缓存等工作处理,最后在此处发出response,由listener接收。

5.图片处理

在上文中是volley一般的工作原理,根据图片的特点,volley中还有三个特殊的类 NetworkImageView,ImageLoader和ImageRequest对图片做了一些特殊处理。

ImageRequest在doparse中结合图片和控件特点,对bitmap生成进行大小缩放,以达到清晰

和占用更少内存的目的

ImageLoader是加载图片的helper,其中有个两个map,flightRequest和BatchResponse,flight的主要目的对每个request进行唯一性确认,使其不再重复生成,而且在控件显示图片不回出现错图的情况。batch response则是在收到图片厚发给listen时控制,这样也可以再此处取消请求,加快加载速度

NetworkImageView继承与Imageview,主要结合了ImageLoader可以异步展示网络图片,同时在detach时取消网络请求。

Ⅲ android用volley怎么给服务器发送json

1.下载官网的android SDK(本人用的是eclipse)

2.新建一个android项目:

File->new->andriod Application project

7、下面就是具体的使用post和get请求的代码:

A:发送get请求如下:

package com.example.xiaoyuantong;

import java.util.HashMap;

import java.util.Iterator;

import org.json.JSONException;

import org.json.JSONObject;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.widget.TextView;

import com.android.volley.Request;

import com.android.volley.RequestQueue;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.JsonObjectRequest;

import com.android.volley.toolbox.Volley;

/**

* Demo

*/

public class MainActivity extends Activity {

private RequestQueue requestQueue ;

@Override

protected void onCreate(Bundle savedInstanceState) {

简旁模super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

}

private void init() {

TextView textView = (TextView)findViewById(R.id.textView);

requestQueue = Volley.newRequestQueue(this);

getJson();

textView.setText("hello");

}

private void getJson(){

String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!register.action?pwd='测试'";

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(

Request.Method.GET, url, null,

new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject response) {

//这里可以打印出接受到返回的json

Log.e("bbb", response.toString());

拦缓}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError arg0) {

// System.out.println("sorry,Error");

Log.e("aaa", arg0.toString());

}

});

requestQueue.add(jsonObjectRequest);

}

}

B:发送post请求如下:

package com.example.xiaoyuantong;

import java.util.HashMap;

import java.util.Map;

import org.json.JSONException;

import org.json.JSONObject;

import com.android.volley.Request;

import com.android.volley.RequestQueue;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.JsonObjectRequest;

import com.android.volley.toolbox.Volley;

import android.os.Bundle;

import android.app.Activity;

import android.util.Log;

import android.view.Menu;

import android.widget.TextView;

public class PostActivity extends Activity {

private RequestQueue requestQueue ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_post);

init();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.post, menu);

return true;

}

private void init() {

TextView textView = (TextView)findViewById(R.id.postView);

requestQueue = Volley.newRequestQueue(this);

getJson();

textView.setText("hellopost");

}

private void getJson(){

String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!reg.action";

JsonObjectRequest jsonObjectRequest ;

JSONObject jsonObject=new JSONObject() ;

try {

jsonObject.put("name", "张三");

jsonObject.put("sex", "女");

} catch (JSONException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

//打印前台向后台要提交的post数据

Log.e("post",jsonObject.toString());

//发送post请求

try{

jsonObjectRequest = new JsonObjectRequest(

Request.Method.POST, url, jsonObject,

new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject response) {

//打印请求后获取的json数据

Log.e("bbb", response.toString());

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError arg0) {

// System.out.println("sorry,Error");

Log.e("aaa", arg0.toString());

}

});

requestQueue.add(jsonObjectRequest);

} catch (Exception e) {

e.printStackTrace();

System.out.println(e + "");

}

requestQueue.start();

}

}

8、在android的logcat里面能查看到打印的请求

(红色的显示的是我在后台请求到数据)

有时候logcat显示不出数据,可能是消息被过滤了,可以在左边点击“减号”删除过滤

在server端,也就是在myeclipse的建立的另一个后台工程里面能获取到请求:


9、后续会补充json数据的解析部分,以及过度到移动云的部分,上面只是c/s模式下的一个简单的基于http的请求应答例子。

阅读全文

与androidvolley超时相关的资料

热点内容
androidseekbar进度条 浏览:356
梯度上升算法知乎 浏览:648
qt项目源码下载 浏览:395
不允许代理服务器什么意思 浏览:511
盲反卷积算法 浏览:306
峰火战国什么时候能开服务器 浏览:452
加密的pdf怎么提取和修改 浏览:488
压缩空气气体流量计 浏览:845
高角杯如何编程 浏览:1011
哪个app可以下载迷失岛 浏览:29
100以内程序员键盘 浏览:914
调试助手源码是什么 浏览:601
程序员网优 浏览:461
有没有极限压缩方法 浏览:79
岳阳hypermill五轴编程 浏览:385
超级舒服的解压神器 浏览:450
超短macd源码 浏览:166
群晖怎么设置用户访问指定文件夹 浏览:557
安卓怎么测触摸屏 浏览:596
javastring原理 浏览:318