Java 改装2.0删除,使其不工作
我正在尝试使用翻新2.0来实现一个库系统。 它可以添加图书、列出所有图书信息、列出一个图书信息、删除一本图书、删除所有图书、更新一个图书信息 My baseURL的末尾有一个“/”:Java 改装2.0删除,使其不工作,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,我正在尝试使用翻新2.0来实现一个库系统。 它可以添加图书、列出所有图书信息、列出一个图书信息、删除一本图书、删除所有图书、更新一个图书信息 My baseURL的末尾有一个“/”: http://www.example.com/webservice/ 前三个功能非常有效: @GET("books") Call<ArrayList<Book>> listBooks(); @POST("books") Call<Book> addBook(@Body Boo
http://www.example.com/webservice/
前三个功能非常有效:
@GET("books")
Call<ArrayList<Book>> listBooks();
@POST("books")
Call<Book> addBook(@Body Book book);
@GET("books/{id}")
Call<Book> getBookInfo(@Path("id") int bookId);
这里有两块原木:
@GET(“books/{id}”)
调用getBookInfo(@Path(“id”)intbookid)代码>
这是正确的
3171-3198/com.xiaoyaworm.prolificlibrary D/OkHttp:我自己找到了答案。这是一个愚蠢的错误…..当我调试我的响应消息时,我在我的delete-and-put方法中发现,response-->rawResponse-->priorResponse:response{protocol=http/1.1,code=301,message=永久移动,url=} 在我正确的get函数中,priorResponse为null。我在那里阅读信息,发现 如果客户机向“/testdir/”(即在 目录)…值得注意的是,如果客户端向“/testdir”发出GET请求(不指定目录路径“/),服务器将返回一个“301永久移动”,新的“位置”为“/testdir/”,如下所示 在我的删除中添加“/”作为结束后,放入接口url,现在所有功能都正常工作!!!有趣的是,在chrome插件-->高级Rest客户端中,我最终不需要这个“/”来让它工作 我现在更新的界面代码为:
@GET("books")
Call<ArrayList<Book>> listBooks();
@POST("books")
Call<Book> addBook(@Body Book book);
@GET("books/{id}/")
Call<Book> getBookInfo(@Path("id") int bookId);
@DELETE("books/{id}/")
Call<Void> deleteBook(@Path("id") int bookId);
@PUT("books/{id}/")
Call<Book> updateBook(@Path("id") int bookId, @Body Book book);
@DELETE("clean/")
Call<Void> deleteAll();
@GET(“书籍”)
调用listBooks();
@邮政(“书籍”)
调用addBook(@Body Book);
@获取(“books/{id}/”)
调用getBookInfo(@Path(“id”)intbookid);
@删除(“books/{id}/”)
调用deleteBook(@Path(“id”)intbookid);
@PUT(“books/{id}/”)
调用updateBook(@Path(“id”)int bookId,@Body Book);
@删除(“clean/”)
调用deleteAll();
我自己找到答案。这是一个愚蠢的错误…..当我调试我的响应消息时,我在我的delete-and-put方法中发现,response-->rawResponse-->priorResponse:response{protocol=http/1.1,code=301,message=永久移动,url=}
在我正确的get函数中,priorResponse为null。我在那里阅读信息,发现
如果客户机向“/testdir/”(即在
目录)…值得注意的是,如果客户端向“/testdir”发出GET请求(不指定目录路径“/),服务器将返回一个“301永久移动”,新的“位置”为“/testdir/”,如下所示
在我的删除中添加“/”作为结束后,放入接口url,现在所有功能都正常工作!!!有趣的是,在chrome插件-->高级Rest客户端中,我最终不需要这个“/”来让它工作
我现在更新的界面代码为:
@GET("books")
Call<ArrayList<Book>> listBooks();
@POST("books")
Call<Book> addBook(@Body Book book);
@GET("books/{id}/")
Call<Book> getBookInfo(@Path("id") int bookId);
@DELETE("books/{id}/")
Call<Void> deleteBook(@Path("id") int bookId);
@PUT("books/{id}/")
Call<Book> updateBook(@Path("id") int bookId, @Body Book book);
@DELETE("clean/")
Call<Void> deleteAll();
@GET(“书籍”)
调用listBooks();
@邮政(“书籍”)
调用addBook(@Body Book);
@获取(“books/{id}/”)
调用getBookInfo(@Path(“id”)intbookid);
@删除(“books/{id}/”)
调用deleteBook(@Path(“id”)intbookid);
@PUT(“books/{id}/”)
调用updateBook(@Path(“id”)int bookId,@Body Book);
@删除(“clean/”)
调用deleteAll();
您能记录请求和响应吗。@Raghunandan我更新了那里的屏幕截图。谢谢。使用“HttpLoggingInterceptor”进行调试。它会让你清楚地知道什么是错的@德克斯特:谢谢你的建议,我把日志贴在这里。在chrome中使用Advanced rest client,通过调用Delete,相同的URL,我将得到204,显示该书已成功删除,但使用我的应用程序,通过Reformation 2.0调用Delete,我得到200作为响应,该书仍然存在,未被删除。你能记录请求和响应吗。@Raghundan我更新了那里的屏幕截图。谢谢。使用“HttpLoggingInterceptor”进行调试。它会让你清楚地知道什么是错的@德克斯特:谢谢你的建议,我把日志贴在这里。在chrome中使用Advanced rest client,通过调用Delete,相同的URL,我将得到204,显示该书已成功删除,但使用我的应用程序,使用Reformation 2.0调用Delete,我得到200作为响应,该书仍然存在,未被删除。哇,很高兴找到我的朋友。我当时看着这个很困惑,我现在明白了。我通常使用@DELETE(“path”)查找,没有任何问题。很高兴看到你解决了这个问题:)你好,@xiaoyaworm我是android开发的新手,我也尝试过一次改进,但我无法使用“发布、放置和删除”方法。你能提出你的改造项目吗?你已经用了所有不同的方法。。那太好了。谢谢我的邮件是tapankumarpatro05@gmail.com请兄弟..@TapanKumarPatro给你。我有另一个问题,问如何使改装删除,看看:哇,很好,找到我的朋友。我当时看着这个很困惑,我现在明白了。我通常使用@DELETE(“path”)查找,没有任何问题。很高兴看到你解决了这个问题:)你好,@xiaoyaworm我是android开发的新手,我也尝试过一次改进,但我无法使用“发布、放置和删除”方法。你能提出你的改造项目吗?你已经用了所有不同的方法。。那太好了。谢谢我的邮件是tapankumarpatro05@gmail.com请兄弟..@TapanKumarPatro给你。我还有一个问题问如何删除改装,请看:
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.interceptors().add(logging);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constant.BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(httpClient.build()).build();
@GET("books")
Call<ArrayList<Book>> listBooks();
@POST("books")
Call<Book> addBook(@Body Book book);
@GET("books/{id}/")
Call<Book> getBookInfo(@Path("id") int bookId);
@DELETE("books/{id}/")
Call<Void> deleteBook(@Path("id") int bookId);
@PUT("books/{id}/")
Call<Book> updateBook(@Path("id") int bookId, @Body Book book);
@DELETE("clean/")
Call<Void> deleteAll();