草庐IT

Retrofit

全部标签

android - 如何在 RxJava 中处理 `IllegalArgumentException`?

我使用Retrofit和RxJava进行网络调用,使用RxBinding进行View操作。在注册屏幕中,单击“注册”按钮后,我使用MyApi服务将信息发布到本地服务器。SignupActivity.classmCompositeSubscription.add(RxView.clicks(mRegisterButton).debounce(300,TimeUnit.MILLISECONDS).subscribe(view->{registerUser();},e->{Timber.e(e,"RxView");onRegistrationFailed(e.getMessage());})

java - 无法验证来自 RxJava 订阅者的模拟方法调用

我正尝试在我的Android应用程序中对Presenter进行单元测试。我尝试测试的方法如下所示:@OverridepublicbooleanloadNextPage(){if(!mIsLoading){mIsLoading=true;if(mViewReference.get()!=null){mViewReference.get().showProgress();}mService.search(mSearchQuery,++mCurrentPage).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThre

android - 如何在 Retrofit 2 (Android) 中动态设置标题列表

我们正在尝试迁移到使用Retrofit2,但我遇到了一个要求,即我们需要为每个请求传递一组动态生成的header(用于分析)。@Headers在参数级别不受支持,并且由于header字段名称因当前Activity而异,因此我无法使用@Header。有没有办法在execute()之前附加标题?(寻找类似于@QueryMap/@FieldMap的内容,但用于标题)注意:我在初始化客户端时没有header列表(因此无法使用拦截器执行此操作)。 最佳答案 您仍然可以(并且必须)使用拦截器。您只需要一点架构。首先创建一个提供必要header的

java - 带有 Retrofit 的 POST 请求给 500

我通过postman返回发送了以下正文(作为原始JSON){"payload":{"email":"","username":"","password":""}}但是,当我尝试按如下方式通过Retrofit发送它时,它不起作用(给出500):publicObservablesignup(Stringemail,StringuserName,Stringpassword){JsonObjectdata=newJsonObject();JsonObjectpayload=newJsonObject();data.addProperty("email",email);data.addProp

Android Retrofit POST 请求缓存

存储retrofitPOST请求缓存的最佳方式是什么?我将存储响应并在用户离线时使用该响应。我被推荐了这个链接。1)CanRetrofitwithOKHttpusecachedatawhenoffline2)CachePOSTrequestswithOkHttp但是在这个链接缓存机制中只工作GET方法。-可以使用改造在post请求中存储缓存吗?-是否有处理网络缓存的库?谢谢 最佳答案 OkHttp支持文件缓存 关于AndroidRetrofitPOST请求缓存,我们在StackOverf

android - 将 RxTextView 文本更改事件与 Retrofit 调用相结合

我是RxJava的新手,只是想尝试实现一些示例以更好地理解发生了什么,所以我认为是一个EditText,它是一个Observable并使用RxBinding库发出textChangeEvent:RxTextView.textChangeEvents(searchbar.getEditText()).debounce(400,TimeUnit.MILLISECONDS).filter(newFunc1(){@OverridepublicBooleancall(TextViewTextChangeEventtext){return(text.text().length()>2);}}).s

android - 获取带有改造的网站的 html - Android?

如何使用retrofit获取网站的html?例如我有这个url我需要获取此url的html以及如何加载更多内容。下面是我的代码:主要Activity.java:publicclassMainActivityextendsAppCompatActivity{TextViewtxt;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txt=(TextView)findViewByI

android - Square 的 Retrofit Android : Hash With Contents of Request

我想使用Square的Retrofit库用我的请求的某些部分创建一个散列。RequestInterceptor对我没有帮助,因为它不提供有关请求的信息,它只是可以向其中添加信息。我需要访问HTTP谓词、所有header和REST路径来创建哈希。哈希将被添加到授权header中。有什么想法吗? 最佳答案 为了通过Retrofit1.9.0实现这一点,唯一的方法是使用OkHttp拦截器(https://github.com/square/okhttp/wiki/Interceptors)。以下代码使用OkHttp2.2.0:public

android - 使用 square retrofit 库进行 http 请求

我正在使用loopjasynchttp库来发出http请求,但是在研究了android网络库之后我发现retrofit比volley更好,后者是目前最快、最可靠的网络库。我计划更改我的代码以适应retrofit..以前,我使用这种方法来发出HTTP请求:AsyncHttpClientAHC=newAsyncHttpClient();RequestParamsparam=newRequestParams();param.put("arg1",arg1);param.put("arg2",arg2);AHC.post("http://xxxxx.xxx.xxxx.xxxx",param,n

android - 如何在 retrofit POST 中发送对象数组?

服务器期待这样的事情:special_array=[{param1="string1",param2="string2"},{param1="string3",param2="string4"}];我需要制作自己的转换器吗? 最佳答案 首先像这样创建一个回调接口(interface)并传递整个Object类。@POST(URL)publicvoidnewObject(@BodyYourObjectobject,Callbacksuccess);Retrofit默认使用Gson对JSON进行序列化和反序列化。例如,如果您的Object