当我尝试创建一个删除方法时:
public interface ImageService {
@DELETE("api/v1/attachment")
Call<BaseResponse> delete(@Body DeleteModel deleteModel);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误基本上归结为来自stacktrace的这些行:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Failure delivering result
java.lang.IllegalArgumentException: Non-body HTTP method cannot contain @Body.
Caused by: java.lang.IllegalArgumentException: Non-body HTTP method cannot contain @Body.
Run Code Online (Sandbox Code Playgroud)
如何在删除方法中添加正文?
我在这里搜索但发现3没有答案,没有使用改造.
我正在编写一个Android 2.2应用程序,它将json严格性发布到ReSTfull Web服务.
Fiddler按预期调用具有相同Json返回值的Web服务,并按预期返回具有相同Json返回值的aspx Web应用程序.
当我查看服务器日志时,我可以看到服务器正在响应具有307重定向的初始POST动词,然后立即响应GET和405错误.
Fiddler和aspx应用程序使用307重定向记录POST,然后立即另一个POST和200 OK.
到底是怎么回事?
这是主要活动:
package com.altaver.android_PostJson2;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class PostJson extends Activity {
private static final String TAG = "MainActivity";
private static final String URL = "http://web2.altaver.com/sdz/avReSTfulLogin1";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
JSONObject jsonObjSend = new JSONObject();
try {
jsonObjSend.put("Pass", "sz");
jsonObjSend.put("User", "szechman");
Log.i(TAG, jsonObjSend.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
JSONObject …Run Code Online (Sandbox Code Playgroud)