0

再会,

我已下载infobipAPI 并将其导入我的工作区。

我想使用这个 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 地址、端口号属性相关的内容。

我使用正确的方法吗?

好心提醒。

4

1 回答 1

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

希望这可以帮助!

于 2016-09-27T10:49:22.577 回答