美好的一天,
我已下载infobip
API并将其导入我的工作区。
我想使用此API来呼叫infobip
发送短信。
但是,我有一个要求,即我需要首先通过服务器代理才能到达infobip
端点URL。
所以,原始代码如下:
public SMSResponse execute(SMSTextualRequest bodyObject) {
RestAdapter restAdapter = new RestAdapter.Builder( ).
.setEndpoint( configuration.getBaseUrl( ) )
.setRequestInterceptor( getRequestInterceptor( ) )
.setConverter(
new GsonConverter( new GsonBuilder( ).setDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" ).create( ) ) )
.build( );
SendSingleTextualSmsService service = restAdapter
.create( SendSingleTextualSmsService.class );
return service.execute( bodyObject );
}
我正在考虑使用setClient()
方法来设置代理值。
所以,我创建了一个Client对象:
Client client = null;
并计划如下:
RestAdapter restAdapter = new RestAdapter.Builder( ).setClient( client )
\\ some code...
但是,我发现在Client
对象中设置的ip地址,端口号属性没有任何相关内容。
我使用的方法是否正确?
请告知。
答案 0 :(得分:0)
您可以像这样配置:
OkHttpClient client = new OkHttpClient();
java.net.Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
client.setProxy(proxy);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(configuration.getBaseUrl())
.setRequestInterceptor(getRequestInterceptor())
.setConverter(new GsonConverter(new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
.create()))
.setClient(new OkClient(client))
.build();
希望这有帮助!