我目前正在使用Square for Androidnetworking通信进行Retrofit。 在创build进度通知的任务期间,有没有办法获得进度,类似于Facebook在上传图片时使用的通知? 使用案例将是加载一个图像希望完整的图像质量没有压缩或缩放。 我看到如何用asynctask来实现这一点,但是这将会破坏使用Retrofit的目的。 但是,这可能是我必须采取的路线。
我正在创build一个使用https与服务器通信的android应用程序。 我正在使用OkHttp和OkHttp发出请求。 这些工作正常的标准http请求。 以下是我所遵循的步骤。 步骤1:使用该命令从服务器获取证书文件 echo -n | openssl s_client -connect api.****.tk:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > gtux.cert 步骤2:使用以下命令将证书转换为BKS格式 keytool -importcert -v -trustcacerts -file "gtux.cert" -alias imeto_alias -keystore "my_keystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-146.jar" -storetype BKS 它问我的密码,并成功创build文件。 第3步: 创build一个OkHttpClient,并使用相同的方式进行https请求 public class MySSLTrust { public static OkHttpClient trustcert(Context context){ OkHttpClient okHttpClient = new OkHttpClient(); try […]
与Rxjava结合使用Retrofit有什么好处?
我已经将这些依赖包括在我的项目中: 编译'com.squareup.retrofit:翻新:2.0.0-beta2' 编译'com.squareup.retrofit:converter-gson:2.0.0-beta1' 我有一个课程,我将通过改进来访问我的api: public static <S> S createService(Class<S> serviceClass, String baseUrl) { Retrofit builder = new Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(GsonConverterFactory.create()) .build(); RestAdapter adapter = builder.build();*/ return builder.create(serviceClass); } 而现在,它给了我这个编译时错误: 错误:(24,17)错误:类Builder中的方法addConverterFactory不能应用于给定的types; 必需:发现工厂:GsonConverterFactory原因:实际参数GsonConverterFactory不能通过方法调用转换转换为Factory 我该如何解决这个问题? 我跟着文档。 哪里不对?
我以为我明白如何做到这一点,但显然不是。 我有我的API从Flickr,开始像这样: jsonFlickrApi({ "photos":{ "page":1, "pages":10, "perpage":100, "total":1000, "photo":[ { "id":"12567883725", "owner":"74574845@N05", "secret":"a7431762dd", "server":"7458", "farm":8, "title":"", "ispublic":1, "isfriend":0, "isfamily":0, "url_l":"http:\/\/farm8.staticflickr.com\/7458\/12567883725_a7431762dd_b.jpg", "height_l":"683", "width_l":"1024" } 现在我需要从照片数组中获得的信息,所以我一直在试图做的是: interface ArtService { @GET("/services/rest/?method=flickr.photos.getRecent&extras=url_l&owner_name&format=json") PhotosResponse getPhotos(); public class PhotosResponse { Photos photos; } public class Photos { List<Arraz> photo; } public class Arraz { int id; String title; String owner; String […]
我有一个Android应用程序,有3个活动: login活动 显示与用户有关的所有任务的任务活动(使用数组适配器填充) 通过单击列表上的任务生成的task_details活动 我必须使用REST Apis。 迄今为止我所做的研究指导我使用Retrofit。 我检查了如何使用它,发现: 在主要活动中设置基本URL(我的是login活动) 我需要创build一个API类,并使用注释来定义我的function。 在活动中使用类Rest适配器并定义callback。 如果我的应用程序是一个单一的活动应用程序,我会碾碎我的MainActivity.java中的一切,但我不知道如何以及在哪里把步骤1,2,3中的所有代码放在我的3个活动中使用。通过告诉如何在我的应用程序中使用Retrofit帮助。 非常感谢。 具体来说,我需要networking电话来:1.login用户2.获取用户的所有任务。 而对于我将使用给定的REST API。
我在我的Android项目中使用Retrofit / OkHttp(1.6)。 我没有发现任何内置任何请求重试机制。 在search更多,我读OkHttp似乎有沉默重试。 我没有看到发生在我的任何连接(HTTP或HTTPS)上。 如何使用okclientconfiguration重试? 现在,我正在捕捉exception并重试维护一个计数器variables。
例如,打电话 api.getUserName(userId, new Callback<String>() {…}); 原因: retrofit.RetrofitError: retrofit.converter.ConversionException: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 我想我必须禁用gsonparsing到POJO,但不知道如何做到这一点。
我正在testingRetrofit与Volley进行比较,我正努力从我的请求中得到回应。 例如,我做这样的事情: RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint("http://localhost:8080") .build(); MyService service = restAdapter.create(MyService.class); service.getToto("toto", new Callback<Toto>() { @Override public void success(Toto toto, Response response) { // Try to get response body BufferedReader reader = null; StringBuilder sb = new StringBuilder(); try { reader = new BufferedReader( new InputStreamReader(response.getBody().in())); String line; try { while ((line = […]
我正在尝试通过Retrofit 2.0-beta3和Android中使用拦截器的OkHttpClient添加基于令牌的身份validation。 但是当我在OkHttpClient中添加拦截器时,我得到了UnsupportedOperationExceptionexception。 这里是我的代码:在ApiClient.java public static TrequantApiInterface getClient(final String token) { if( sTreqantApiInterface == null) { Log.v(RETROFIT_LOG, "Creating api client for the first time"); OkHttpClient okClient = new OkHttpClient(); okClient.interceptors().add(new Interceptor() { @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request original = chain.request(); // Request customization: add request headers Request.Builder requestBuilder = original.newBuilder() .header("Authorization", […]