-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xutils3使用Digest验证的方法 #191
Comments
使用自定义ParamsBuilder, 看示例代码: 如果需要在HTTP_UNAUTHORIZED的时候重试, 那么在ParamsBuilder#buildParams方法中加入params.setHttpRetryHandler(.....), 自定义重试机制: 加入的验证字段, canRetry返回true. 这样就不必在callback中关心参数和错误重试的问题, 也不用再次发送请求, 重试是自动的. 如果需要自动解析定义的请求结果参考示例中的:
|
好的,多谢回答。有几个问题: 2.如果没有 3.JsonResponseParser只有在请求成功的情况下才会调用,失败的情况下是不会调用的,所以如果需要拿到reponse的header,callback还是必须implements InterceptRequestListener? 多谢 #################### |
x.http().get(....)重复提交多次请求,如果关闭之前请求,只继续最后一个请求 |
HTTP 请求怎样设置请求超时时间? 你这边的默认超时时间好像是15秒。 |
同样用addbodyParamter传file 为什么2的可以3 不行呢??服务器该怎么接收呢? |
post的请求有点问题吧,发送参数到服务器,后台接收不到啊。 |
经常出现socketTimeout,我设置超时时间是7s,但是出现这个错误基本在发出请求的1,2s内,比较困惑! |
setMultipart(true)试试, 默认只有一个body参数,并且是文件类型是使用普通的文件表单上传。 |
x.http().get(params, new Callback.CacheCallback() {}方法连接不到后端服务器有可能是哪里出错了,请问一下 |
需要使用digest验证,xutil2使用起来比较方便,可以使用httpclient;
但是xutils3好像用起来比较麻烦,现在使用的方式如下:
1、首先需要使用异步调用方式:
x.http().post(requestParams, new CustomCallback());
2、CustomCallback 需要继承 InterceptRequestListener,才能在afterRequest(UriRequest request)回调中拿到response中header "WWW-Authenticate"的值
3、需要digest验证的请求,第一次post之后会回调onError(Throwable ex, boolean isOnCallback);
在该回调方法中判断httpcode是否为HTTP_UNAUTHORIZED,是的话自己拼接DigestAuth字符串authString,并且在requestparams中加入新的header:
requestParams.addHeader("Authorization", authString);
4、再一次调用x.http().post(requestParams, new CustomCallback());
这么使用起来有几个限制:必须使用异步方式调用,必须继承InterceptRequestListener,必须在onerror中自己拼接验证heder。。。
请问有没有比较方便的方式?多谢
The text was updated successfully, but these errors were encountered: