gpt4 book ai didi

java - Android Retrofit错误需要HTTP方法注解(例如@GET、@POST等)

转载 作者:行者123 更新时间:2023-12-02 04:42:46 24 4
gpt4 key购买 nike

我的 Retrofit 代码有问题,我似乎遗漏了一些东西,或者没有完全理解我需要做什么。这是我的错误的完整副本。我没有使用 ProGuard,但我已经应用了规则集中的所有异常(exception)情况,只是为了确保这一点。对于调试和发布,Minify 均设置为 false。

谁能帮我解决这个问题,我将不胜感激!

    05-01 11:08:37.967  12277-12357/com.gbp.sean.reorderscanner         E/VMIROrderService﹕ Exception Posting Order
retrofit.RetrofitError: OrderEntryInterface.update: 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 java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy0.update(Unknown Source)
at com.gbp.sean.reorderscanner.VMIROrderService.getEntryResult(VMIROrderService.java:65)
at com.gbp.sean.reorderscanner.VMIROrderService.onHandleIntent(VMIROrderService.java:41)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.lang.IllegalArgumentException: OrderEntryInterface.update: 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 java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy0.update(Unknown Source)
at com.gbp.sean.reorderscanner.VMIROrderService.getEntryResult(VMIROrderService.java:65)
at com.gbp.sean.reorderscanner.VMIROrderService.onHandleIntent(VMIROrderService.java:41)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)

这是我的 OrderEntryInterface 的副本

 import retrofit.http.GET;
import retrofit.http.Path;

public interface OrderEntryInterface {

@GET("/ServiceNameFilteredOut/json/@id={id}@ord={ord}")
OrderDetails details(
@Path("id") String id,
@Path("ord") String ord
);
OrderInfo update();
}

这是我的 OrderService 的重要部分

@Override
protected void onHandleIntent(Intent intent) {
try {
this.id = intent.getExtras().getString("id");
this.ord = intent.getExtras().getString("ord");
String result=getEntryResult();

Log.d(getClass().getSimpleName(),result);

if(result != null) {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Posted Successfully", Toast.LENGTH_LONG).show();
}
});
}
}
catch (Exception e) {
Log.e(getClass().getSimpleName(), "Exception Posting Order", e);
}
}

private String getEntryResult() {
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http://WebPageURLFilteredOut/").build();
OrderEntryInterface entryInterface = restAdapter.create(OrderEntryInterface.class);

entryInterface.details(id,ord);

OrderInfo info = entryInterface.update();

if (info.PostOrderResult == "Confirmed") {
return (info.PostOrderResult);
}

return (null);
}

最佳答案

您在 details() 方法上有一个注释。您正在调用 update() 方法。错误消息表明 update() 方法缺少注释。而且,根据您的代码,您在 update() 方法上没有注释。

因此,向 update() 方法添加 Retrofit 注解。

关于java - Android Retrofit错误需要HTTP方法注解(例如@GET、@POST等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com