当前位置: 首页 > 知识库问答 >
问题:

需要修改HTTP方法注释

狄富
2023-03-14

我使用的是改型2.1,当我调用@get时,它会说

HTTP method annotation is required (e.g., @GET, @POST, etc.).

现在..如果我定义@retrofit.http.get,它将抛出

No Retrofit annotation found. (parameter #1)
11-15 12:11:20.423 25033-25506/com.app.garuda.ridernet E/UncaughtException: java.lang.RuntimeException: An error occured while executing doInBackground()
                                                                                at android.os.AsyncTask$3.done(AsyncTask.java:300)
                                                                                at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                                                                                at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                at java.lang.Thread.run(Thread.java:841)
                                                                             Caused by: retrofit.RetrofitError: gitapi.getquery: HTTP method annotation is required (e.g., @GET, @POST, etc.).
                                                                                at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:400)
                                                                                at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
                                                                                at $Proxy0.getquery(Native Method)
                                                                                at com.app.garuda.ridernet.SignIn.getjson(SignIn.java:92)
                                                                                at com.app.garuda.ridernet.SignIn.access$100(SignIn.java:28)
                                                                                at com.app.garuda.ridernet.SignIn$download.doInBackground(SignIn.java:125)
                                                                                at android.os.AsyncTask$2.call(AsyncTask.java:288)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                                                at java.lang.Thread.run(Thread.java:841) 
                                                                             Caused by: java.lang.IllegalArgumentException: gitapi.getquery: HTTP method annotation is required (e.g., @GET, @POST, etc.).
                                                                                at retrofit.RestMethodInfo.methodError(RestMethodInfo.java:107)
                                                                                at retrofit.RestMethodInfo.parseMethodAnnotations(RestMethodInfo.java:179)
                                                                                at retrofit.RestMethodInfo.init(RestMethodInfo.java:117)
                                                                                at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:294)
                                                                                at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240) 
                                                                                at $Proxy0.getquery(Native Method) 
                                                                                at com.app.garuda.ridernet.SignIn.getjson(SignIn.java:92) 
                                                                                at com.app.garuda.ridernet.SignIn.access$100(SignIn.java:28) 
                                                                                at com.app.garuda.ridernet.SignIn$download.doInBackground(SignIn.java:125) 
                                                                                at android.os.AsyncTask$2.call(AsyncTask.java:288) 
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                                                                                at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                                                at java.lang.Thread.run(Thread.java:841) 
 import okhttp3.ResponseBody;
 import retrofit2.Call;
 import retrofit2.http.Field;
 import retrofit2.http.FormUrlEncoded;
 import retrofit2.http.GET; 
 import retrofit2.http.POST;
 import retrofit2.http.Query;


 public interface Testapi {


    @GET("/getq.php")
    Call<Testmodel> getquery(
            @Query("sort") String order
    );


    @FormUrlEncoded
    @POST("/insert.php")
    Call<ResponseBody> insert(
            @Field("nick") String nick,
            @Field("mail") String mail
    );

}

以及方法

private void getjson() {
    //Creating a rest adapter

    RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ROOT_URL).build();

    //Creating an object of our api interface
    Testapi api = adapter.create(Testapi.class);
    Call<Testmodel> call = api.getquery("a");

    call.enqueue(new Callback<Testmodel>() {
        @Override
        public void onResponse(Call<Testmodel> call, Response<Testmodel> response) {
            try {
                Testmodel obj = response.body();

                TextView txt = (TextView) findViewById(R.id.textView);
                txt.setText("ID: " + obj.getId() + "   nick: " + obj.getNick() + "   mail: " + obj.getMail());

            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(Call<Gitmodel> call, Throwable throwable) {
            Toast.makeText(SignIn.this, "FALLIMENTO",     Toast.LENGTH_LONG).show();
        }
    });


}

分级文件

    apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "23.0.2"
defaultConfig {

    multiDexEnabled true
    applicationId "xxx"
    minSdkVersion 17
    targetSdkVersion 24
    versionCode 1
    versionName "0.1"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
 }



dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

   androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',  {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/retrofit-2.1.0.jar')
compile files('libs/gson-2.7.jar')
compile files('libs/okhttp-3.4.1.jar')
compile files('libs/okio-1.11.0.jar')

compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.google.android.gms:play-services:9.2.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-maps:9.2.1'
testCompile 'junit:junit:4.12'
}



apply plugin: 'com.google.gms.google-services'

共有1个答案

郭阳曜
2023-03-14

@post带注释的方法,必须有参数,标记为@body
示例:

@POST("/user/mobile/verify")
VerifyCodeResponse verifyMobile(@Body VerifyRequest request);
 类似资料:
  • 我对我的修改代码有一个问题,我似乎缺少了什么,或者没有完全理解我需要做什么。这是我的错误的完整副本。我没有使用ProGuard,但我已经应用了所有的例外情况,如果你想要在规则集中,只是为了确保。对于调试和发布,Minify都设置为false。

  • Stacktrace: 界面: 我的应用程序在调试(在虚拟和真实设备上)上运行良好,但在发布构建后,它在任何地方都无法运行(因为改型会引发错误)。我尝试了所有存在的方法来修复它,但任何一种都不起作用。 我的进口商品很好 我添加了守卫规则:

  • 本文向大家介绍MySQL中修改表结构时需要注意的一些地方,包括了MySQL中修改表结构时需要注意的一些地方的使用技巧和注意事项,需要的朋友参考一下 MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据。不是所有的数据库管理员、程序员、系统管理员都非常了解Mysql能避免这种情况。DBA会经常碰到这种生产中断的情况,当升级脚本修改了应用层和数据库层,或者缺乏经

  • 问题内容: 而且我正在尝试更改方法注释,但是java.lang.reflect.Method不包含任何地图字段(例如“ annotations”)或方法(例如“ getDeclaredAnnotationMap”) 只有但是我可以用这个字节数组做什么? 那么,如何修改方法的注释呢? 编辑: 我创建了:http : //pastebin.com/T2rewcwU 但是,仅编辑此方法实例,如果取消注释

  • 问题内容: 我了解jsonp是一种绕过相同原始政策的技术。基本上,您在脚本标签中引用json服务服务器端点,因为脚本标签不受SO策略的限制。 我的问题是:假设服务器具有一个为json提供服务的终结点,是否需要对服务器进行任何修改才能在客户端中使用jsonp? 我想不,但是想确定。 问题答案: 是的,JSONP呈现时略有不同,因此您的服务器需要支持它。 JSON看起来像这样: JSONP看起来像这样