我正在尝试将一个String传递给我的服务器的POST改进方法。 这是我的电话:
Observable<MyOrder> addNoteOrder(@Header("Token1")String token1,
@Header("Token2")String token1,
@Path("orderId")long orderId,
@Body String orderNote);
我这样打电话:
mRestApi.addNoteOrder("token1", "token2", "0", "001");
使用我的服务器调试我有500个错误,因为它告诉我错误是在有效负载创建中。
那么,如何将String对象作为有效负载发送到我的服务器。这是我第一次这样做。
答案 0 :(得分:0)
@Path
会将POST
网址中的参数替换为您传递给它的字符串。它应该看起来像
@POST("some/{orderId}")
Call<MyOrder> addNoteOrder(@Path("orderId") long orderId,
@Header("Token1") String token1,
@Header("Token2") String token1,
@Body String orderNote);
并致电服务
Call<MyOrder> responseBodyCall = mRestApi.addNoteOrder(params);
responseBodyCall.clone().enqueue(new Callback<MyOrder>() {
@Override
public void onResponse(Call<MyOrder> call, Response<MyOrder> response) {
}
@Override
public void onFailure(Call<MyOrder> call, Throwable t) {
}
});
答案 1 :(得分:0)
你需要这样设置你的界面:
Observable<MyOrder> addNoteOrder(@HeaderMap HashMap<String, String> headers,
@Path("orderId")long orderId,
@Body String orderNote);
用改造来调用它:
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Token1",token1);
headers.put("Token2", token2);
mRestApi.addNoteOrder(headers, 0, "001");
希望这会奏效。