2016-06-14 1 views
0

に呼び出し、以下の残りのURLのjava。春休憩テンプレートは、こんにちは、私はいくつかのソフト層のAPIを呼び出そうとし、簡単な通話を発信できるだけでなく、JavaでSpringのRestTemplateを使用して、いくつかのIDを渡し含ま呼び出しを行うことができましたが、中に同様の電話をかけることができないのですjavaの

// formatted for readability 
https://getInvoices? 
objectFilter={ 
    "invoices":{ 
     "createDate":{ 
     "operation":"betweenDate", 
     "options":[ 
      { 
       "name":"startDate", 
       "value":[ 
        "06/01/2016" 
       ] 
      }, 
      { 
       "name":"endDate", 
       "value":[ 
        "06/02/2016" 
       ] 
      } 
     ] 
     } 
    } 
} 

誰でも、Javaでspring restテンプレートを使用して同じやり方を教えていただけますか、またはソフトレイヤーのレストクライアントを使用することもできます。

+0

へようこそStack Overflow :-) と[[最小限の完全で検証可能な例の作成方法]]を参照してください。 (http://stackoverflow.com/help/mcve)。これは便利な回答を得るのに役立ちます – JimHawkins

答えて

0

で行くことができ、あなたのコードは次のように考えられます。

Spring RestTemplate
String json = "{\"invoices\":{\"createDate\":{\"operation\":\"betweenDate\",\"options\":[{\"name\":\"startDate\",\"value\":[\"06/01/2016\"]},{\"name\":\"endDate\",\"value\":[\"06/02/2016\"]}]}}}"; 

Client client = ClientBuilder.newClient(); 
WebTarget target = client.target("https://api.softlayer.com") 
         .path("rest") 
         .path("v3") 
         .path("SoftLayer_Account") 
         .path("getInvoices") 
         .queryParam("objectFilter", 
          URLEncoder.encode(json, StandardCharsets.UTF_8.toString())); 

String result = target.request(MediaType.APPLICATION_JSON_TYPE).get(String.class); 

、あなたはそうするでしょう:

String json = "{\"invoices\":{\"createDate\":{\"operation\":\"betweenDate\",\"options\":[{\"name\":\"startDate\",\"value\":[\"06/01/2016\"]},{\"name\":\"endDate\",\"value\":[\"06/02/2016\"]}]}}}"; 

RestTemplate restTemplate = new RestTemplate(); 

URI targetUrl = UriComponentsBuilder 
     .fromUriString("https://api.softlayer.com") 
     .path("rest") 
     .path("v3") 
     .path("SoftLayer_Account") 
     .path("getInvoices") 
     .queryParam("objectFilter", 
      URLEncoder.encode(json, StandardCharsets.UTF_8.toString())) 
     .build() 
     .toUri(); 

String result = restTemplate.getForObject(targetUrl, String.class); 
+0

リクエストは残りの一時的な時間によって生成されます "https://api.softlayer.com/rest/v3/SoftLayer_Account/getInvoices?objectFilter=%257B%2522invoices%2522%253A%257B%2522createDate%2522%253A %257B%2522操作%2522%253A%2522間%2522%252C%2522%%%2522%%%%%%%%%%%%%%%%%%%%%%%%%2522%%%%2522%%% %2522%255D%257D%252C%257B%2522名%2522%253A%2522endDate%2522%252C%2522%%2522%253A%255B%252206%252F02%252F2016%2522%255D%257D%255D%257D%257D%257D "500(内部サーバーエラー)になりました。エラーハンドラを呼び出す – MayankMike

+0

オブジェクトフィルタを解析できません。 – MayankMike

+0

@ user3777871私はこのAPIを知らない。 'URLEncoder.encode(json、StandardCharsets.UTF_8.toString())の代わりに' json'を試してください。 –

0

あなたはRestTemplate

RestTemplate restTemplate = new RestTemplate(); 
    String resourceUrl = "http://localhost:8080/resturl"; 
    ResponseEntity<String> response = restTemplate.getForEntity(resourceUrl+ "/1", String.class); 

を使用するか、またはあなたはHTTPClientを使用すると、ユーザーJersey Client APIに喜んでいる場合

関連する問題