Ral*_*kum 5 rest android retrofit
我从服务器收到(步骤 1)一个soapString,我想将此字符串转发(步骤2)到另一台服务器。
public interface StepTwoRestAdapter {
@Headers({"Content-Type:text/xml"})
@POST("/services/step2/forwardSoap")
Observable<String> order(@Body SoapString soapString);
}
Run Code Online (Sandbox Code Playgroud)
在上面的这种情况下,“/webservices/step2/forwardSoap”的 afgter my.server.com 始终保持不变。我怎样才能使这部分变量?
这里的技巧是,在第一个响应的响应中指定了第二个服务器(用于第 2 步)。
编辑:现在,我使用@Tabish Hussain 的提议
public interface StepTwoRestAdapter {
@Headers({"Content-Type:text/xml"})
@POST("/{urlPath}")
Observable<String> order(@Body SoapString soapString, @Path("urlPath") String urlPath);
Run Code Online (Sandbox Code Playgroud)
}
然后我打电话
restAdapter.create(StepTwoRestAdapter.class).order(new TypedString(soapString), uriPath)
Run Code Online (Sandbox Code Playgroud)
而我的 uriPath 是“services/step2/forwardSoap”
但是改造然后调用:https : //my.server.com/services%2Fstep2%2FforwardSoap
如您所见,“/”被“%2F”替换
像这样做
public interface StepTwoRestAdapter {
@Headers({"Content-Type:text/xml"})
@POST("/services/{soapString}/forwardSoap")
Observable<String> order(@Path("soapString") SoapString soapString);
}
Run Code Online (Sandbox Code Playgroud)
检查此链接,您应该能够在那里找到答案:
https://futurestud.io/tutorials/retrofit-2-how-to-use-dynamic-urls-for-requests https://futurestud.io/tutorials/retrofit-2-how-to-change-api-base -url-at-runtime-2
我认为最简单的方法是:
public interface StepTwoRestAdapter {
@Headers({"Content-Type:text/xml"})
@POST
Observable<String> order(@Url String url, @Body SoapString soapString);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Retrofit 1,请检查以下内容:
https://medium.com/@kevintcoughlin/dynamic-endpoints-with-retrofit-a1f4229f4a8d#.7atwl0o3t
归档时间: |
|
查看次数: |
8640 次 |
最近记录: |