Questions tagged «retrofit2»

Retrofit2是用于Android和Java的类型安全REST客户端Retrofit的第二个版本。它由Square,Inc.开发。

21
使用翻新2进行记录
我正在尝试获取在请求中发送的确切JSON。这是我的代码: OkHttpClient client = new OkHttpClient(); client.interceptors().add(new Interceptor(){ @Override public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { Request request = chain.request(); Log.e(String.format("\nrequest:\n%s\nheaders:\n%s", request.body().toString(), request.headers())); com.squareup.okhttp.Response response = chain.proceed(request); return response; } }); Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory(GsonConverterFactory.create()) .client(client).build(); 但是我只在日志中看到: request: com.squareup.okhttp.RequestBody$1@3ff4074d headers: Content-Type: application/vnd.ll.event.list+json 考虑到删除了Retrofit 1 setLog()以及setLogLevel()我们以前使用的Retrofit 1 ,我应该如何正确记录?

10
使用Retrofit 2.0的POST多部分表单数据,包括图像
我正在尝试使用Retrofit 2.0对服务器进行HTTP POST MediaType MEDIA_TYPE_TEXT = MediaType.parse("text/plain"); MediaType MEDIA_TYPE_IMAGE = MediaType.parse("image/*"); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); imageBitmap.compress(Bitmap.CompressFormat.JPEG,90,byteArrayOutputStream); profilePictureByte = byteArrayOutputStream.toByteArray(); Call<APIResults> call = ServiceAPI.updateProfile( RequestBody.create(MEDIA_TYPE_TEXT, emailString), RequestBody.create(MEDIA_TYPE_IMAGE, profilePictureByte)); call.enqueue(); 服务器返回错误,指出文件无效。 这很奇怪,因为我尝试在iOS上以相同的格式上传相同的文件(使用其他库),但是上传成功。 我想知道使用Retrofit 2.0上传图像的正确方法是什么? 上传之前,我应该先将其保存到磁盘吗? PS:我已经对其他不包含图像的Multipart请求进行了改造,并且已成功完成。问题是当我尝试向身体包括一个字节时。

9
如何使用Retrofit-Android记录请求和响应正文?
我在Retrofit API中找不到用于记录完整的请求/响应正文的相关方法。我在Profiler中期待一些帮助(但它仅提供有关响应的元数据)。我尝试在Builder中设置日志级别,但这也无济于事: RestAdapter adapter = (new RestAdapter.Builder()). setEndpoint(baseUrl). setRequestInterceptor(interceptor). setProfiler(profiler). setClient(client). setExecutors(MyApplication.getWebServiceThreadPool()). setLogLevel(LogLevel.FULL). setLog(new RestAdapter.Log() { @Override public void log(String msg) { Log.i(TAG, msg); } }). build(); 编辑:此代码现在正在工作。我不知道为什么它不起作用。可能是因为我使用的是旧版本的改造。

21
Retrofit 2.0如何获得反序列化错误响应
我正在使用Retrofit 2.0.0-beta1。 在测试中,我有另一种情况,并且期望错误HTTP 400 我想要retrofit.Response<MyError> response 但是response.body() == null MyError没有反序列化-我只在这里看到 response.errorBody().string() 但是它没有给我MyError作为对象
128 java  retrofit  retrofit2 


3
无法为io.reactivex.Observable创建呼叫适配器
我将发送一个简单的get方法到我的服务器(这是Rails应用),并使用RxJava和Retrofit获得结果。我所做的是: 我的界面: public interface ApiCall { String SERVICE_ENDPOINT = "https://198.50.214.15"; @GET("/api/post") io.reactivex.Observable<Post> getPost(); } 我的模型是这样的: public class Post { @SerializedName("id") private String id; @SerializedName("body") private String body; @SerializedName("title") private String title; public String getId () { return id; } public String getBody () { return body; } public String getTitle …


6
改造2 @path vs @query
我是Retrofit 2库的新手。我读了几篇入门的文章,并设法从RESTful API中获取XML数据而未指定参数。生成XML资源的方法如下。 @GET @Path("/foods") @Produces(MediaType.APPLICATION_XML) public List<FoodPyramid> getFoodPyramid() { Session session = HibernateUtil.getSessionFactory().openSession(); trans = session.beginTransaction(); List<FoodPyramid> foodList = session.createQuery("from FoodPyramid").list(); try { trans.commit(); session.close(); } catch (Exception e) { session.close(); System.err.println("Food Pyramid fetch " + e); } System.err.println("Am in the food modal. . . . . . . …
74 java  android  rest  retrofit2 

3
改造2-URL查询参数
我正在使用查询参数来设置Google Maps API所需的值。 问题是我不需要&第一个查询参数的符号。 @GET("/maps/api/geocode/json?") Call<JsonObject> getLocationInfo(@Query("address") String zipCode, @Query("sensor") boolean sensor, @Query("client") String client, @Query("signature") String signature); 改造产生: &address=90210&sensor=false&client=gme-client&signature=signkey 当我需要它时会导致呼叫失败 address=90210&sensor=false&client=gme-client&signature=signkey 我该如何解决?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.