Tag: 改造

使用令牌和ID添加标头

我在获取经过身份validation的用户时遇到问题。 在它之前我得到了令牌和用户ID。 现在我需要使用访问令牌和id从服务器获取用户。 我有标题格式 现在我试图使用拦截器添加带有用户令牌和id的头。 我的代码: Interceptor interceptor = new Interceptor() { @Override public okhttp3.Response intercept(Chain chain) throws IOException { Request newRequest = chain.request().newBuilder() .addHeader(“Accept”, “application/json”) .addHeader(“authorization”, token) <-?? .addHeader("driver_id", id) <-?? .build(); return chain.proceed(newRequest); } }; OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder(); okHttpBuilder.addInterceptor(interceptor); OkHttpClient okHttpClient = okHttpBuilder.build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) […]

没有模型类的改造2

我想问一下Retrofit 2.0 所有这些时间,我只知道使用GSON Converter进行Retrofit并获得该对象。 但我不知道如何使用这样的API获取数据https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty 我正在尝试显示所有热门故事,并在我首先加载所有热门故事后获取对象。 我只知道这样的旧式风格: http : //pastebin.com/JMpwjH8H

Method getResources没有用请求类型注释(例如,GET,POST)是什么意思?

private interface ResourcesApi { @POST(“/synchronize”) void getResources(@Body Map<String, Map> map, Callback callback); } 与调用代码: mApi.getResources(data, this); 该类实现了Callback,因此定义了成功/失败。 堆栈跟踪: 03-09 18:05:15.182 28570-28746/? E/AndroidRuntime﹕ FATAL EXCEPTION: pool-2-thread-1 java.lang.IllegalStateException: Method getResources not annotated with request type (eg, GET, POST). at retrofit.RestMethodInfo.parseMethodAnnotations(RestMethodInfo.java:179) at retrofit.RestMethodInfo.init(RestMethodInfo.java:115) at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:327) at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:262) at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:313) at retrofit.CallbackRunnable.run(CallbackRunnable.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856)

我如何在Retrofit库中使用Gson?

我使用Retrofit发送请求并在android中接收响应但是当我想要来自服务器的转换响应时它有问题总是给我Exception : retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING 当服务器的响应应该给我电影列表,所以我需要把所有这些电影放在列表中。 Movie (模特class): public class Movie { public Movie() {} @SerializedName(“original_title”) private String movieTitle; @SerializedName(“vote_average”) private String movieVoteAverage; @SerializedName(“overview”) private String movieOverview; ………… } GitMovieApi类: public interface GitMovieApi { @GET(“/3/movie/{movie}”) public void getMovie(@Path(“movie”) String typeMovie,@Query(“api_key”) String keyApi, Callback response); } RestAdapter配置: RestAdapter restAdapter = new […]

java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT

我正在使用Retro Fit在线连接到API。 但我在尝试解析返回的数据时遇到此错误。 retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 返回的数据采用此格式,数据模型如下: iGPlaceApi.getStreams(ITEMS_PER_PAGE, pageNumber * ITEMS_PER_PAGE, new Callback<List>() { @Override public void success(List mGp, Response response) { int n = mGp.size(); Object asa = mGp.toArray(); } @Override public void failure(RetrofitError retrofitError) { String error = retrofitError.toString(); } }); public class […]

嵌套JSON的POJO格式?

那么让我们说JSON响应是: [{ “data” : { “item1”: value1, “item2:” value2 }}] 当您必须首先访问数据时,如何获得值’value1’和’value2’? 如果字段位于根目录,那么我可以让方法返回带有这些字段名称的POJO。 我基本上希望以下工作。 @GET(“/path/to/data/”) Pojo getData(); class Pojo { public String item1; public String item2; }

从retrofit2获取字符串响应主体

我正在使用retrofit1旧式 @GET(“/loginUser”) public Call login( @Query(“email”) String email, @Query(“password”) String password, Callback callback); 现在我不想获得“User”类但是我想得到一个String响应。 以前我们使用“响应”但是在改造2中没有响应, 如何在不使用任何json解析的情况下从服务器获取字符串响应或全身响应?

Android和Java的REST客户端改造不会终止

我正在研究Android和Java的Retrofit REST客户端。 在Eclipse中使用标准Java项目我使用@POST和void返回类型。 进行异步调用。 一切都按预期工作,但我的测试主要方法永远不会终止。 我必须手动停止每个测试执行。 我需要做什么(或停止做)以便我的测试自动终止? 这是我的java代码。 import retrofit.Callback; import retrofit.RestAdapter; import retrofit.RetrofitError; import retrofit.client.Response; public class Android { private static final RestAdapter mRestAdapter = new RestAdapter.Builder() .setEndpoint(“http://localhost:8080/resources/registrations”) .build(); public static void main(final String… args) { final AndroidRegister androidRegister = mRestAdapter.create(AndroidRegister.class); Callback callback = manufactureCallback(); androidRegister.androidRegisterInterface( new RegistrationIdJson(“1111-2222-3333-4444”), callback); } private static Callback manufactureCallback() […]

改造和OkHttp gzip解码

我希望将REST服务作为gzip编码的JSON使用。 它提供了Content-Encoding: gzip ,但我的OkHttp没有将其编码为可读文本,因此JSON转换器抛出exception。 —> HTTP GET https://rapla.dhbw-karlsruhe.de/rapla/events?resources=%5B%27rc85dbd6-7d98-4eb7-a7f6-b867213c73d8%27%5D&start=2015-09-01&end=2015-12-31 Accept-Encoding: gzip, deflate Accept: application/json Authorization: *not posted* Content-Type: application/json;charset=utf-8 —> END HTTP (no body) 3m WMa ג ҵ p 0 S n <— END HTTP (9684-byte body) 根据Jake Whartons对Content-Encoding: gzip 评论 Content-Encoding: gzip Header应告诉OkHttp对身体进行解码。 创建RestAdapter的代码是: final RestAdapter adapter = new RestAdapter.Builder() .setEndpoint(baseUrl) .setClient(new OkClient(new OkHttpClient())) .setConverter(new […]

具有Retrofit 2的多个转换器

我有一个HATEOAS(HAL) REST服务并设法使用下面的代码与它交谈(使用halarious作为转换引擎)但是当我尝试合并转换器 ( stallone和stallone2 )时,应用程序将始终拿起第一个转换器而不是适合于响应类型的那个,当然会导致错误。 我怎样才能避免仅在小型细节中有所不同的重复改装? public interface Stallone { @GET(“/discovery”) Call discover(); @POST() Call login(@Url String url, @Body LoginRequest secret); } public static void main(String… args) throws IOException { // Initialize a converter for each supported (return) type final Stallone stallone = new Retrofit.Builder() .baseUrl(BASE) .addConverterFactory(HALConverterFactory.create(DiscoveryResponse.class)) .build().create(Stallone.class); final Stallone stallone2 = new Retrofit.Builder() .baseUrl(BASE) […]