改造更新 class PUT 错误代码 301

Retrofit updating class PUT error code 301

也许这是一个愚蠢的问题,但我已经坚持了一段时间。我正在为 restApi 实现一些方法。我正在使用改造,我正在尝试更新客户信息。要进行更新,我正在使用 PUT 方法,但我不知道为什么我总是收到 301 CODE,而且我无法更新信息。这是我的代码,谢谢你所做的一切。

public interface ClientInterface {

    @GET("/clients/{clientParam}")
    public Client fetchClient(@Path("clientParam") String client);

    @GET("/clients/")
    public void fetchAllClients(Callback<List<Client>> callback);

    @POST("/clients/")
    public void newClient(@Body Client client, Callback<Client> callback);

    @PUT("/clients/{clientParam}/")
    public void updateClient(@Path("clientParam") String cod, @Body Client client,Callback<Client> callback);
}

之后我用下面的方式更新方法

RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(Utils.getURLPreferences(DatosClienteActivity.this)).build();
ClientInterface clientRestInter = restAdapter.create(ClientInterface.class);
Client clientsUpdate = new Client();

    //Fetch data into clientsUpdate object

    clientRestInter.updateClient(codClient, clientsUpdate, new Callback<Client>() {

        @Override
        public void success(Client client, retrofit.client.Response response) {

        }

        @Override
        public void failure(RetrofitError error) {
            error.printStackTrace();
        }
    });

编辑: 如果我对同一个 URL 使用截击,它会完美地工作...

RequestQueue queue = Volley.newRequestQueue(this);

    final JSONObject jsonObject = new JSONObject();
    try {
        //Construct jsonObject
    } catch (JSONException e) {
        e.printStackTrace();
    }

    JsonObjectRequest req = new JsonObjectRequest(Request.Method.PUT, URL, jsonObject,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        VolleyLog.v("Response:%n %s", response.toString(4));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: ", error.getMessage());
            error.printStackTrace();
        }
    });
    queue.add(req);

终于解决了

问题是我们有两个不同的客户端对象,您获取的那个是您必须更改并使用它通过 PUT 上传的那个。

我希望这对某人有所帮助。