RestTemplate简单获取示例

时间:2017-11-09 12:54:43

标签: java curl spring-web

...分毫不差

卷曲线:curl https://api.storify.com/v1/stories/storify

从storify生成一个冗长的JSON响应。我试图将其转换为Spring的RestTemplate看起来像这样:

@Test
public void test() {
    RestTemplate template = new RestTemplate();
    URI uri=URI.create("https://api.storify.com/v1/stories/storify");
    ResponseEntity<String> response = template.getForEntity(uri,String.class);
    System.out.println("<<<<<<<<<<");
    System.out.println(response.getStatusCode()+" "+response.hasBody());
    System.out.println("<<<<<<<<<<");

    String text = response.getBody();
    System.out.println(response.getBody());
    System.out.println("<<<<<<<<<<");
}

虽然结果状态代码为200,而hasBody()为真,但getBody()并未返回任何内容,只是看似空行。如何使用RestTemplate

复制卷曲的结果

谢谢, GeePaw

2 个答案:

答案 0 :(得分:1)

它对我有用,但是你可以尝试运行以下代码,可能会帮助

var urlList = ['urlA','urlB','urlC',...];
var length = urlList.length;
var currentRequest = 0;
getResponse(urlList[currentRequest]);


function getResponse(theURL){
 steps.shuffleLetters({"text": messages[mesInd]});
    $.ajax({
        method: 'GET',
        url: theURL,
        dataType: 'text',
        success: function (data) {
             setTimeout(function(){steps.shuffleLetters({"text": data});}, 1000);
             //Here you will call the next request 
             currentRequest +=1;
             if(currentRequest < length)
             {
                 getResponse(urlList[currentRequest]);
             }

             mesInd = mesInd+1;
        },
        error: function (data) {
            setTimeout(function(){steps.shuffleLetters({"text": "Click Again!"});}, 1000);
            mesInd = 0;
        }
    });
}

此外,如果您支持代理(可能是办公室网络),那么不要忘记将代理详细信息添加到 RestTemplate 。这是添加&#34; 10.1.2.3&#34;的片段。作为端口号的主机。 80

 RestTemplate restTemplate = new RestTemplate();
 String result = restTemplate.getForObject("https://api.storify.com/v1/stories/storify", String.class);
 System.out.println(result);

答案 1 :(得分:0)

我终于得到了这个。感谢Piyush的支持,你让我相信它真的 只是我。

结果:变形虫很好,我的显微镜被破了。该println的输出是一个巨大的单行JSON。我是从Eclipse打印的。 Eclipse控制台不像普通shell那样处理那种事情。我没有输出,因为 Eclipse 没有给我。在shell中运行可以很好地使用这个变体,也可能是我尝试的其他15个变种。 :)

谢谢, GeePaw