使用Volley中遇到一些的问题

post访问添加参数:

1、如果post访问网络,而参数又不是Map<String, String>类型的,可以直接重写getBody()方法,返回byte[];

2、如果未写明网络访问的方式,即是post访问还是get访问,volley中默认是DEPRECATED_GET_OR_POST方法,这时需要重写getPostBody()方法,

HurlStack使用https访问网络时

必须使用实例化使用构造函数HurlStack(UrlRewriter urlRewriter, SSLSocketFactory sslSocketFactory) 实例化,使用HttpURLConnection访问网络【使用HttpUrlConnStack执行https请求时配置https请参考Android网络编程——https 不验证证书方式(信任所有证书)】;

如果你发现使用HttpURLConnection访问网络返回的数据乱码,这是因为在Android 2.3版本的时候,HttpURLConnection会自动在每个发出的请求中加入如下消息头,并处理相应的返回结果:  Accept-Encoding: gzip  参考


如果访问网络服务器时使用了cookie,且又必须频繁访问网络【测试100ms访问一次网络】,必须主动设置RequestQueue中线程池的个数为1,不然就有可能出现错误:

NetworkDispatcher.run: Unhandled exception java.lang.IllegalStateException: Adapter is detached.
java.lang.IllegalStateException: Adapter is detached.
        at org.apache.http.impl.conn.AbstractPooledConnAdapter.assertAttached(AbstractPooledConnAdapter.java:90)
        at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:118)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
        at com.android.volley.toolbox.HttpClientStack.performRequest(HttpClientStack.java:83)
        at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
        at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值