利用volley进行http设置请求头、超时及请求参数设置(post)

这里以post请求说明,get请求相似设置请求头及超时。

1.自定义request,继承com.android.volley.Request

2.构造方法实现(basecallback,为自定义的监听,实现Response.Listener,ErrorListener接口)--post请求

  1. public BaseRequest(String url,String params, BaseCallback<T> callback)  
       {  
    super(Method.POST, url, callback);  
    this.callback = callback;  
    this.params = params;  
    Log.e(TAG, "request:" + params);  
    setShouldCache(false);  
       }

3.请求头设置:重写getHeaders方法

  1. @Override  
       public Map<String, String> getHeaders() throws AuthFailureError  
       {  
    Map<String, String> headers = new HashMap<String, String>();  
    headers.put("Charset", "UTF-8");  
    headers.put("Content-Type", "application/x-javascript");  
    headers.put("Accept-Encoding", "gzip,deflate");  
    return headers;  
       }

设置字符集为UTF-8,并采用gzip压缩传输

4.超时设置:重写getRetryPolicy方法

  1. @Override  
       public RetryPolicy getRetryPolicy()  
       {  
    RetryPolicy retryPolicy = new DefaultRetryPolicy(SOCKET_TIMEOUT, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);  
    return retryPolicy;  
       }

5.请求参数组装:重写getBody方法

  1. @Override  
       public byte[] getBody() throws AuthFailureError  
       {  
    return params == null ? super.getBody() : params.getBytes();  
       }

结合上一篇gzip响应解析数据即可实现现在常见的http实现json数据的gzip传输

时间: 2024-08-07 00:27:32

利用volley进行http设置请求头、超时及请求参数设置(post)的相关文章

php curl如何设置自定义请求头和打印请求头信息

$header = [ 'client:h5', 'token:test', ]; curlRequest($url, $params, true, 10, $header); PHP 5.1.3版以上支持用curl_getinfo函数来获取请求头具体需要先设置 curl_setopt($ch, CURLINFO_HEADER_OUT, true);然后在请求发生后用 curl_getinfo($ch, CURLINFO_HEADER_OUT); function curlRequest($ur

关于 x-requested-with 请求头 区分ajax请求还是普通请求

今天做Spring MVC异常统一处理这块,在处理的时候需要区分发送过来的请求是传统请求还是ajax请求,网上有现成的代码,我是参考http://www.2cto.com/kf/201412/364393.html 里面的做法.其中的 if (!( request.getHeader("accept").indexOf("application/json") > -1 || ( request                     .getHeader(&q

x-requested-with 请求头 区分ajax请求还是普通请求

在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1.传统同步请求参数 accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-charset  gb2312,utf-8;q=0.7,*;q=0.7 accept-encoding  gzip,deflate accept-languag

【架构】Nginx如何设置X-Request-ID请求头,记录请求时间:毫秒?

Nginx is awesome, but it’s missing some common features. For instance, a common thing to add to access logs is a unique ID per request, so that you can track the flow of a single request through multiple services. Another thing it’s missing is the ab

给RabbitMQ发送消息时,设置请求头Header。

消费者 由于消费者那里,@Payload是接受的消息体,使用了@Header注解,需要请求头,生产者这边就要设置,如下代码: 这是RabbitTemplate中的converAndSend(exchang,routingKey,消息体,消息头)方法. @Override public void convertAndSend(String exchange, String routingKey, final Object message, final MessagePostProcessor me

HTTP 请求头 &amp; 响应头

HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST).如有必要,客户程序还可以选择发送其他的请求头.大多数请求头并不是必需的, 但Content-Length除外.对于POST请求来说Content-Length必须出现. 下面是一些最常见的请求头 Accept:浏览器可接受的MIME类型. Accept-Charset:浏览器可接受的字符集. Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip.Ser

Android系列之网络(二)----HTTP请求头与响应头

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4005034.html 联系方式:[email protected] [正文] 国庆佳节,习惯并享受着一个人独霸整个教研室的感觉. 在上一篇文章中,我们学习到了如何使用HttpClient发送HTTP请求.博文链接: Android系列之网络(一)----使用HttpClient发送HTTP请求

Hessian客户端向服务端发送请求头

Hessian客户端向服务端发送数据 场景:项目日志Token处理,即用户发送一个请求时生成一个日志Token,该Token从各个服务之间传递,并使用该Token记录日志,直至请求结束.可以根据该Token定位所有日志. 问题:由于目前项目使用Hessian协议,所有Token必须使用Hessian传递.查阅相关资料,发现可以请求头传递数据. 解决方法:定义与线程相关的请求头上下文,在客户端发送请求之前,增加请求头.服务端获取请求时,从请求中解决请求头,并放入请求头上下文中,供服务端使用. 实现

Http请求头和响应头(Get和Post)

HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议..HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP工作原理 HTTP三点注意事项: HTTP是无连接:无连接的含义是限制每次连接只处理一个请求.服务器处理完客户的请求,并收到客户的应答后,即断开连接.采用这种方式可以节省传输时间. HTT

Zuul 修改 请求头、响应头 (死磕)

疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并发 环境 视频,陆续上线: Windows Redis 安装(带视频) Linux Redis 安装(带视频) Windows Zookeeper 安装(带视频) Linux Zookeeper 安装(带视频) RabbitMQ 离线安装(带视频) Nacos 安装(带视频) ElasticSear