将代理值设置为InfoBip API

时间:2016-09-26 09:57:17

标签: java api proxy sms endpoint

美好的一天,

我已下载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地址,端口号属性没有任何相关内容。

我使用的方法是否正确?

请告知。

1 个答案:

答案 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();

希望这有帮助!