我是Android Studio的新手,我想为我的应用程序使用Volley库,但我无法在Android Studio中将源添加为库.
我在网上搜索但找不到任何东西.据说到处都是图书馆,但我不知道怎么做.
我从git存储库获得了截击源:
https://android.googlesource.com/platform/frameworks/volley
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将它作为库添加到我的项目中.
我读了一篇关于Volley的帖子,我知道这是一个很棒的网络库.但我无法理解一件事.
所有请求都是异步任务?
当我想使用Volley发送asyncTask请求时,我是否需要在AsyncTask中输入Volley请求?或者如果它已经是AsyncTask请求,我应该调用Volley Request吗?
private class MyClass extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// do Volley request
}
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
嗨,我有一个标签式活动,在第一个标签中,我从服务器获取数据并在卡片视图中的Recyclerview中显示.要从服务器获取数据,我使用排球库.我想实现Pull to refresh来加载数据(所以每当我拉它就必须向网络发出请求).我还希望每当我在标签之间切换时禁用网络请求(因为当我在我的应用程序中更改标签焦点时它开始获取数据)我只想做一次网络请求(当用户第一次登录时)然后其他人请求仅通过拉动刷新.
这是我的片段,我在这里回收并查看数据:
public class Tab1History extends Fragment
{
private RecyclerView recyclerView;
private CespiteAdapter adapter;
UserSessionManager session;
private static final String URL_DATA = "http://mydata.php";
private List<CespiteOgg> cespiteOggList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.tab1history, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view);
recyclerView.setHasFixedSize(true);//every item of the RecyclerView has a fix size
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
cespiteOggList = new ArrayList<>();
loadRecyclerViewData();
return rootView;
}
private void loadRecyclerViewData()
{
// Session class instance
session = new UserSessionManager(getActivity());
//get …Run Code Online (Sandbox Code Playgroud) android android-fragments pull-to-refresh android-volley android-cardview
我在Android平台上使用Google Volley.我遇到一个问题,其中error参数in onErrorResponse返回null networkResponse
对于我正在使用的RESTful API,我需要确定Http状态代码,它经常以401(SC_UNAUTHORIZED)或500(SC_INTERNAL_SERVER_ERROR)到达,我偶尔可以检查通过:
final int httpStatusCode = error.networkResponse.statusCode;
if(networkResponse == HttpStatus.SC_UNAUTHORIZED) {
// Http status code 401: Unauthorized.
}
Run Code Online (Sandbox Code Playgroud)
这会抛出一个NullPointerException因为networkResponsenull.
如何确定函数中的Http状态代码onErrorResponse?
或者,我如何确保error.networkResponse非空onErrorResponse?
我想知道如何为排球框架创建单元测试.模拟请求,响应,以便我可以创建不需要Web服务工作和网络访问的单元测试.
我用谷歌搜索了它,但我根本找不到有关该框架的更多信息
我在我的应用程序中使用Volley Network Library.
问题是当网络连接缓慢时它会多次发送数据.
在我谷歌这个问题之后,我能找到关于这个问题的所有内容都在下面:
connection.setChunkedStreamingMode(0);
Run Code Online (Sandbox Code Playgroud)
但是我无法编辑我的排球库Hurlkstack课程.
它说:
此类文件的jar属于容器android私有库,它不允许修改其条目上的源附件.
我应该怎么做才能帮助我
我有以下代码我应该修改.
private void makeJsonObjectRequest() {
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
"http://example.com/***.php", obj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
response.getString("success");
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
AppController.getInstance().addToRequestQueue(jsonObjReq);
}
Run Code Online (Sandbox Code Playgroud) RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
mRequestQueue.add(new JsonObjectRequest(Method.GET, cityListUrl, null, new Listener<JSONObject>()
{
public void onResponse(JSONObject jsonResults)
{
//Any Call
}
}, new ErrorListener()
{
public void onErrorResponse(VolleyError arg0)
{
//Any Error log
}
}
));
Run Code Online (Sandbox Code Playgroud)
这是我的请求调用,我想更改或设置请求的超时.反正有可能吗?
我想处理并显示一些消息 onErrorResponse
下面是我的代码.
String url = MainActivity.strHostUrl+"api/delete_picture";
jobjDeleteImage = new JsonObjectRequest(Request.Method.POST, url, jobj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Image response", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volly Error", error.toString());
NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null) {
Log.e("Status code", String.valueOf(networkResponse.statusCode));
}
}
});
Run Code Online (Sandbox Code Playgroud)
我想处理com.android.volley.TimeoutError和其他一些错误代码,如404,503等和Toast消息在这里.
我想用表单urlencoded参数创建一个POST JSONObjectRequest.我怎样才能做到这一点?我试过以下代码,但无济于事.
final String api = "http://api.url";
final JSONObject jobj = new JSONObject();
jobj.put("Username", "usr");
jobj.put("Password", "passwd");
jobj.put("grant_type", "password");
final JsonObjectRequest jor = new JsonObjectRequest(
Request.Method.POST,
api, jobj,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(getApplicationContext(), "Login Successful!", Toast.LENGTH_LONG).show();
//do other things with the received JSONObject
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error!", Toast.LENGTH_LONG).show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> pars = new HashMap<String, String>(); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个与我编写的RESTful Web服务进行通信的Android应用程序.使用Volleyfor GET方法非常简单,但我不能指责POST方法.
我想在POST请求String正文中发送请求,并检索Web服务的原始响应(如200 ok,500 server error).
所有我能找到的是StringRequest不允许发送数据(正文),并且它限制我接收解析的String响应.我也遇到了JsonObjectRequest接受数据(正文)但检索解析后的JSONObject响应.
我决定编写自己的实现,但是我找不到从Web服务接收原始响应的方法.我该怎么做?