android – 如何为改进的POST调用设置动态端点?

我从服务器收到(步骤1)soapString,我想将此String转发(步骤2)到另一台服务器.

public interface StepTwoRestAdapter {
        @Headers({"Content-Type:text/xml"})
        @POST("/services/step2/forwardSoap")
        Observable<String> order(@Body SoapString soapString);
}

在上面这种情况下,afgter my.server.com即“/ webservices / step2 / forwardSoap”始终是常量.如何使这部分变量?

这里的技巧是,在第一个响应的响应中指定第二个服务器(对于步骤2).

编辑:
现在,我使用@Tabish Hussain的提议

public interface StepTwoRestAdapter {
    @Headers({"Content-Type:text/xml"})
    @POST("/{urlPath}")
    Observable<String> order(@Body SoapString soapString, @Path("urlPath") String urlPath);

}

然后我打电话

 restAdapter.create(StepTwoRestAdapter.class).order(new TypedString(soapString), uriPath)

而我的uriPath是“services / step2 / forwardSoap”

但改装后调用:
https://my.server.com/services%2Fstep2%2FforwardSoap

你可以看到’/’替换为“/”

解决方法:

像这样做

public interface StepTwoRestAdapter {
    @Headers({"Content-Type:text/xml"})
    @POST("/services/{soapString}/forwardSoap")
    Observable<String> order(@Path("soapString") SoapString soapString);
}
上一篇:java – 使用自定义主体参数名称进行POST改造


下一篇:使用retrofit和rxjava反复进行API调用