我从服务器收到(步骤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);
}