关于在我的项目中使用Volley,我几乎没有问题:
答案 0 :(得分:205)
$ git clone https://android.googlesource.com/platform/frameworks/volley
$ cd volley
$ android update project -p .
$ ant jar
然后,将bin/volley.jar
复制到您的libs/
文件夹中,然后离开!
答案 1 :(得分:73)
在Volley lesson中,Google会指示将Volley添加到我们的项目中作为Android库项目或.jar
文件。
以下是使用 Android Studio 或 Eclipse 创建Volley .jar
文件的方法:
注意:强>
在这两种情况下,我建议将.jar
文件重命名为Volley最新提交的日期,即volley_20150319.jar
,以保持版本简单。
[your local path to volley]/build/intermediate/bundles/
debug
和release
文件夹中,您都会找到名为classes.jar
的JAR文件。libs/
文件夹中。libs/
文件夹中。答案 2 :(得分:48)
1)此库是否也可用作普通Java项目中的网络库,或者仅限Android版
仅适用于Android,因为它取决于Android特定的类。您可以通过查看源代码来了解这些内容like RequestQueue
。
2)我在这里看到多个分支,没有关于哪个分支开始的文档。我应该使用哪个分支开始?
来自Google I | O演示文稿的说明只是克隆了git
repo,默认情况下会从master
分支中提取。
3)如何将此库集成到您自己的项目中?哪种方法更好:将Volley作为一个独立的库项目并旋转一个jar并将其放入项目中或将所有源代码复制到项目中?
Google I | O演示文稿中的说明是将源代码添加到您的项目中。就个人而言,我发现这是一种奇怪的方法。
答案 3 :(得分:41)
答案 4 :(得分:25)
The Volley library is now published by the Android Open Source Project:
In [52]: %timeit sum(power(1.1, 100))
100000 loops, best of 3: 7.67 µs per loop
In [51]: %timeit sum(powernumba(1.1, 100))
The slowest run took 5.64 times longer than the fastest. This could mean that an intermediate result is being cached
100000 loops, best of 3: 2.64 µs per loop
答案 5 :(得分:16)
<强>更新强> Volley现已正式发布,可通过JCenter获得。以下是如何导入它:
compile 'com.android.volley:volley:1.0.0'
牺牲方式:
如果您正在使用Gradle,则可以从here导入Volley。
dependencies {
compile 'com.mcxiaoke.volley:library:1.0.+'
}
注意强>
对于Changelog,这是一个非官方镜像(有一些小错误修正,请参阅android volley library。),源代码将定期与官方排球库同步。
答案 6 :(得分:13)
由于关于单一方法的答案很多,但没有一种方法可以比较不同的方法来获得凌空运行,我也把我的两分钱放进去。随意编辑/增强这个答案。
[MyProjectPath]/app/libs/
文件夹right-click
中选择Add As Library...
git clone https://github.com/git/git
的其他信息... sry bad one,但无法抗拒^^)git clone https://android.googlesource.com/platform/frameworks/volley
将com
文件夹从[path_where_you_typed_git_clone]/volley/src
复制到项目app/src/main/java
文件夹(或者将其集成,如果您已经有com文件夹!! ;-))
文件会立即显示在Android Studio中。对于Eclipse,您必须right-click
文件夹中的src
并先按refresh
(或F5
)。
通过git进行操作是android教程(look here)中正式建议的内容。
在项目的src/build.gradle
文件中添加以下排球依赖:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// ...
compile 'com.mcxiaoke.volley:library:1.+'
}
点击文件顶部应显示的Try Again
,如果不是,则点击Build
这里的主要“优势”是,这将使版本保持最新状态,而在其他两种情况下,您必须手动更新凌空。
在“不利方面”,它不是正式来自谷歌,而是第三方每周镜像。
但是这两点都与你需要/想要的相关。
此外,如果您不想要更新,只需将所需的版本放在那里,例如compile 'com.mcxiaoke.volley:library:1.0.7'
。
答案 7 :(得分:11)
如果您使用GIT进行自己的代码管理,为什么不简单地将它作为子模块添加到项目...
git submodule add https://android.googlesource.com/platform/frameworks/volley -b master Volley
这样,随着Volley代码库的更新,更新很简单......
git submodule git pull
您可以在自己的项目中扩展主要的Volley类进行修改,这样您就不必每次更新Volley框架时都不得不编写更改。
答案 8 :(得分:8)
这是一个针对Volley Http请求的小型快速入门,它非常易于集成。
您需要一个应用程序范围的Volley RequestQueue:
1. private static RequestQueue reqQueue;
您可以将它放在Application类中,并通过getRequestQueue()使其静态可用。
然后你已经可以使用RequestQueue.add()方法用Volley执行第一个请求。
2. reqQueue.add(...)
使用JsonObjectRequest查询单个对象,使用JsonArrayRequest查询对象列表。
queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
//SUCCESS
}}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//ERROR
}}));
请记住在服务器端正确设置Http Expires标头,以便Volley可以利用它的集成缓存功能
答案 9 :(得分:2)
这是Android Studio ang Gradle的另一种方式:
您需要项目的build.gradle中的下一个(在您的应用程序结构级别):
repositories {
maven {
url 'https://github.com/Goddchen/mvn-repo/raw/master/'
}
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// You must install or update the Support Repository through the SDK manager to use this dependency.
compile 'com.android.support:support-v4:20.+'
compile 'com.android:volley:1.+'
}
答案 10 :(得分:1)
首先从Git克隆项目
$git clone https://android.googlesource.com/platform/frameworks/volley
你应该知道的一些基本排球类
首先使用排球,你需要创建RequestQueue的对象
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
第二 - &gt;使用JsonArrayRequest或JsonObjectRequest
发出请求JsonArrayRequest mJsonRequest = new JsonArrayRequest(url,
new Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// here you can parse response and use accordingly
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// here you will receive errors and show proper message according to error type
}
});
最后将请求放入队列中。即
mQueue.add(mJsonRequest);
我还建议你制作一个SingleQuery of RequestQuery。
答案 11 :(得分:1)
向Android Studio 1.0.2添加Volley jar(或任何jar)现在变得相当容易。在Android Studio外部,将volley.jar
复制到<yourproject>/app/libs
(应该已经存在)。由于默认的Gradle设置包含以下行:
compile fileTree(dir: 'libs', include: ['*.jar'])
......现在一切都已设置完毕。这可能看起来不是这样,因为默认的项目结构视图(File -> Project Structure)
没有显示libs
目录。要查看它,您需要使用项目结构视图上方的微调器将Android
更改为Project
。
您可以看到它正在构建应用程序(可能没有必要),然后开始输入这样的代码:
RequestQueue request
您会看到Android Studio会提示您完成RequestQueue (com.android.volley)
。
答案 12 :(得分:1)
如果你愿意,也很容易得到一个调试版。
git clone https://android.googlesource.com/platform/frameworks/volley
然后在另一个目录中创建一个新的Android工作室项目(只是一个常规应用程序项目)。完成后,添加一个新的子模块(文件|新模块)。选择导入现有项目选项,并将其指向您检出凌空的目录。一旦完成,你可以制作你的模块,它将创建一个aar文件。
答案 13 :(得分:1)
使用eclipse Luna你必须:
答案 14 :(得分:1)
如果您使用的是Android Studio,则应将此行放在gradle文件中
compile 'com.mcxiaoke.volley:library:1.0.15'
如果你想使用GET方法,你应该有类似的东西。
private void weatherData() {
JsonObjectRequest jsonObjReq = new JsonObjectRequest(
Request.Method.GET,
"URL with JSON data",
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
//Your code goes here
} catch (JSONException e) {
Log.e("TAG", e.toString());
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq);
}
但是如果你想在服务器上发布数据,那么你应该构建一个HashMap,Volley库将这些键/对值转换为JSON对象,然后再将它们发布到服务器中。这是一个例子。
final HashMap<String, String> postParams = new HashMap<String, String>();
postParams.put("username", username);
postParams.put("password", password);
Response.Listener<JSONObject> listener;
Response.ErrorListener errorListener;
final JSONObject jsonObject = new JSONObject(postParams);
JsonObjectRequest jsonObjReq = new JsonObjectRequest(
"YOUR URL WITH JSON DATA",
jsonObject,
new com.android.volley.Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", response.toString());
try {
if (response.getString("status").equals("fail")) {
} else if (response.getString("status").equals("success")) {
} catch (JSONException e) {
Log.e("TAG", e.toString())
}
}
},
new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//VolleyLog.d("TAG", "Error: " + error.getMessage());
//pDialog.dismiss();
}
}) {
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
VolleySingleton.getInstance(getApplicationContext()).
addToRequestQueue(jsonObjRequest);
}
答案 15 :(得分:0)
Volley可以作为当前项目回购中的git子模块添加。 这个git子模块将指向Volley的官方git repo。 因此,您只需更新子模块即可从官方git仓库获取更新 指针。
如果您将Volley添加为主要的库模块,还可以进一步添加 项目,您可以轻松自定义它。它对调试非常有用 目的也是。
要实现此目的,请按照以下步骤操作:
第一步:
在Android应用程序项目GIT Repo中添加volley作为子模块。 git submodule add -b master https://android.googlesource.com/platform/frameworks/volley Libraries / Volley
第二步:
在settings.gradle中,添加以下内容以将volley添加为工作室项目模块。 包括&#39;:排球&#39; 项目(&#39;:Volley&#39;)。projectDir =新文件(&#39; ../ Libraries / Volley&#39;)
第三步:
在app / build.gradle中,添加以下行来编译Volley 编译项目(&#39;:Volley&#39;)
这就是全部! Volley已成功加入该项目。
每次您想从Google官方获取最新代码 Volley的回购,只需运行以下命令
git submodule foreach git pull
有关详细信息:https://gitsubmoduleasandroidtudiomodule.blogspot.in/
GIT Repo示例代码:https://github.com/arpitratan/AndroidGitSubmoduleAsModule
答案 16 :(得分:0)
我喜欢与Volley合作。为了节省开发时间,我尝试编写一个小方便的库Gloxey Netwok Manager来设置我的项目Volley。它包括 JSON解析器以及其他有助于检查网络可用性的方法。
图书馆提供ConnectionManager.class
,其中提供了 Volley String 和 Volley JSON 请求的不同方法。您可以在有或没有标题的情况下发出 GET,PUT,POST,DELETE 的请求。
您可以阅读完整文档here。
只需将此行放入您的gradle文件中即可。
依赖项{
compile 'io.gloxey.gnm:network-manager:1.0.1'
}
答案 17 :(得分:0)
当第二行列出支持库时,我遇到了问题。重新排序这两个陈述对我有用。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.mcxiaoke.volley:library:1.0.6'
compile 'com.android.support:support-v4:20.+'
}
答案 18 :(得分:0)
我克隆了Volley project并添加了配置文件,这些文件允许使用Gradle构建库。
通过这个,您可以将库安装到本地Maven存储库中,并通过Gradle从Android项目中引用它。
请注意various clones out there which have improvements for the library。可能需要集成它们并编译您的私有增强版本的库。
除了库本身,构建脚本还会生成 JavaDoc 和源存档。