有一个方便的com.android.volley.NetworkImageView小部件扩展了ImageView。根据Google演示文稿,要使用它,只需要在布局xml文件中使用它:
<com.android.volley.toolbox.NetworkImageView
和活动源代码中的这个:
mImageView.setImageUrl(imageUrl, mImageLoader);
但是如果我需要在请求中放入cookie或参数呢?我见过this question,但我认为这需要修改凌空库。有更简单的方法吗?
答案 0 :(得分:2)
Here您可以找到一个项目,其中包含使用Volley的不同简单示例,包括使用Cookie和GET / POST参数。
答案 1 :(得分:1)
Ogre_BGR提出的解决方案并不合适,因为他正在使用Apache的HTTP客户端。而volley仅在API 8上使用Apache的HTTP客户端,因为它比URLConnection的bug少。但自从姜饼(2.3)以来,建议使用URLConnection,这是Android团队维护和更新的。
我认为更好的解决方案是您提供链接的解决方案。它不会修改Volley,只是添加/保存了Volley已经使用过的cookie。扩展一些Volley的Request类以便快速简单地调用API请求(see here)是很常见的事情。 Ogre_BGR的解决方案完全改变了Volley的HttpStack。
答案 2 :(得分:1)
您需要将xml布局文件设置为
<com.android.volley.toolbox.NetworkImageView...
您的班级名称中缺少“工具箱”。
答案 3 :(得分:0)
至于cookies,我使用URLConnetion(这是Volley on API&gt; 8的默认用例)所做的是实现一个扩展HurlStack的自定义类(Volley使用URLConnection实现HTTP客户端),并覆盖createConnection(URL url),这是用于在每个请求之前获取连接的方法。 我刚添加了我的用户代理(默认情况下没有发送,使用HurlStack)和cookie(也不会在HurlStack中自动管理)。
这是我的课程代码:
public class CustomHurlStack extends HurlStack {
public CustomHurlStack() {
super();
}
@Override
protected HttpURLConnection createConnection(URL url) throws IOException {
// Create a connection with custom attributes
HttpURLConnection conn = super.createConnection(url);
conn.addRequestProperty("User-Agent", "myUserAgent/1.0");
conn.addRequestProperty("cookie", "myCookie");
return conn;
}
}
这应该是一个可行的解决方案,我不确定为什么Volley不会包含这样一个可配置的类,但是哦,你可以在一分钟左右创建自己的类,如上所述。 / p>
答案 4 :(得分:0)
private static RequestQueue mQueue;
String userAgent = "volley/0";
HttpStack stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent));
mQueue = Volley.newRequestQueue(this, stack, 100 * 1024 * 1024);