导航:首页 > 操作系统 > 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超时相关的资料

热点内容
如何做单机服务器 浏览:943
校讯通查成绩怎么显示服务器异常 浏览:882
冰箱压缩机工作压力是多少 浏览:408
程序员20多平米租房 浏览:451
电工知识用线的算法 浏览:338
极光推送php服务器端 浏览:5
怎么用命令方块控制僵尸 浏览:774
大型云服务器有哪些 浏览:466
解压版三国街机 浏览:423
去中心化app里面包含什么 浏览:948
密钥安装命令行 浏览:505
文献编译英文 浏览:659
php调用浏览器 浏览:527
数控车床编程初学实例 浏览:949
cad中筛选命令是什么 浏览:800
数控铣床法兰克编程 浏览:330
怎么样分解压缩包图标 浏览:620
php两年工作经验简历 浏览:765
怎么提前解压房贷 浏览:700
反诈宣传app哪里可以拿到用户资料 浏览:857