2016-09-26 63 views
0

好日子,設置代理值到InfoBip API

我有下載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 = null; 

刨做如下:

RestAdapter restAdapter = new RestAdapter.Builder().setClient(client) 
\\ some code... 

不過,我覺得沒什麼好IP地址,端口號屬性對我來說,在Client設置與目的。

我使用正確的方法嗎?

請注意。

回答

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

希望這有助於!

+0

好主意,太糟糕了我的服務器和應用程序都限制爲java 1.6。 OkHttpClient需要最小的Java 1.7。如果升級到java 1.7,整個系統將發生非常大的變化,所有框架都需要更改,也許還需要更改一些代碼。 –