我想使用谷歌的凌空图书馆
我正在使用Android Studio,我知道如何添加.jar库.
但我无法使用volley文件创建.jar库:
在这里我做了什么:(使用Windows 7)
git clone https://android.googlesource.com/platform/frameworks/volley
cd volley
android.bat update project -p . --target android-19
ant.jar jar
Run Code Online (Sandbox Code Playgroud)
我得到了输出:
发生了一个java异常.
怎么了?我怎样才能添加一个非.jar库?
我正在使用android Volley提出请求.所以我使用这段代码.我不明白一件事.我检查我的服务器,params始终为null.我认为getParams()不起作用.我该怎么做才能解决这个问题.
RequestQueue queue = MyVolley.getRequestQueue();
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,SPHERE_URL,null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println(response);
hideProgressDialog();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
hideProgressDialog();
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("id","1");
params.put("name", "myname");
return params;
};
};
queue.add(jsObjRequest);
Run Code Online (Sandbox Code Playgroud) 我看到关于Volley的Google IO 2013会议,我正在考虑转向凌空.Volley是否支持添加POST/GET参数来请求?如果是,我该怎么办?
我正在考虑在我的下一个项目中实施Android Volley库(关于Volley的Google IO演示文稿).
但是,我没有为该库找到任何严肃的API.
如何JSON使用Volley 上传文件,执行POST/GET请求以及添加Gson解析器作为解析器?
我正在使用Volley为我的Android应用程序从我的服务器获取数据.除了从我的服务器处理错误之外,它运行良好.我的服务器在出错时发送此响应:
{
"status": 400,
"message": "Errors (2): A name is required- Julien is already used. Not creating."
}
Run Code Online (Sandbox Code Playgroud)
我的目标是获取消息,然后将其显示在Toast.我按照一些示例来了解如何执行此操作,但它不起作用.
有我的错误监听器:
public void onErrorResponse(VolleyError error) {
int statusCode = error.networkResponse.statusCode;
NetworkResponse response = error.networkResponse;
Log.d("testerror",""+statusCode+" "+response.data);
// Handle your error types accordingly.For Timeout & No connection error, you can show 'retry' button.
// For AuthFailure, you can re login with user credentials.
// For ClientError, 400 & 401, Errors happening on client side when sending api request. …Run Code Online (Sandbox Code Playgroud) 我对慢速网络上的Volley POST请求有问题.每次我BasicNetwork.logSlowRequests在LogCat中看到,我的POST请求都会执行两次或更多次,从而产生多个(2次或更多次)1个请求的帖子.我已经将重试策略设置为0,但它没有帮助.
这是我的LogCat
03-16 01:31:35.674:D/Volley(5984):[19807] BasicNetwork.logSlowRequests:请求的HTTP响应= <[] http:// [myserver]/api/places 0xfa7d0c33 NORMAL 1> [lifetime = 3824 ],[size = 313],[rc = 200],[retryCount = 0] 03-16 01:31:35.704:D/Volley(5984):[1] Request.finish:3853 ms:[] http://[myserver]/api/places 0xfa7d0c33 NORMAL 1
这是我的代码
JSONObject body = new JSONObject();
try {
body.put(PROTO_BODY_AUTHORIZATION, Sessions.getActiveSession().getToken());
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.POST,
context.getResources().getString(R.string.server_address) + "/places",
body,
callback,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
}
}
);
request.setRetryPolicy(
new DefaultRetryPolicy(
DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
0, …Run Code Online (Sandbox Code Playgroud) 有人知道如何使用com.android.volley库将会话cookie附加到请求吗?当我登录网站时,它会给我一个会话cookie.浏览器会将该cookie发送回任何后续请求.排球似乎没有这样做,至少不是自动的.
谢谢.
我正在尝试使用此代码发出https请求:
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
request = new Request<String>(Request.Method.GET,"https://devblahblahblah.com/service/etc",errListener);
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:未找到证书路径的信任锚.
有两点需要注意:
我实际上需要知道Android Volley框架中是否有任何交换机/选项,我将成功点击HTTPS URL?
public class CustomRequest extends JsonObjectRequest {
public CustomRequest(String url, JSONObject params,
Listener<JSONObject> listener, ErrorListener errorListener)
throws JSONException {
super(Method.POST,url, params, listener,
errorListener);
this.setShouldCache(Boolean.TRUE);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这段代码足以让我得到隐式缓存的响应.我不确定它是否有效,因为我在发送请求时假设:
它会首先点击缓存并将其发送到响应
然后,当结果从远程服务器传来时,它会将其提供给响应
更新:
我想到了如何手动检索缓存并将其重建为JSONObject并通过OnResponse函数发送它,但考虑到隐式缓存,这似乎并不高效.JsonObjectRequest类应该返回JSONObject作为缓存条目而不是原始响应数据.
但我仍然有兴趣知道我是否犯了一些错误.
模糊性完全是由于缺乏文档,所以如果我遗漏了一些非常明显的东西,我会道歉.
public class getString {
String tag_string_req = "string_raq";
String url = "http://10.0.2.2/eat/locations/index.json";
String result="";
public String get_String() {
StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
result=response;
System.out.println(response);
;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println(volleyError.getMessage());
}
});
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
return result;
}}
Run Code Online (Sandbox Code Playgroud)
我想构建一个getString对象并在其他字段中调用get_String.但似乎很难从onResponse中得到结果.我知道它不能以当前的方式工作.任何人都可以帮我解决这个问题吗?