我正在使用Spring Web创建一个rest资源。我用Java创建了类似于Json响应的文档对象。当我使用String.class作为响应类型时,我从请求中获取响应。当我更改对我创建的类的响应时,boy是null。
这是我的httpgetter
private <T> T perform(String token, String resourcePath, Class<T> responseType, HttpMethod method, MultiValueMap<String, String> queryParams) {
UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.newInstance()
.scheme(protocol)
.host(host);
UriComponents uriComponents = uriComponentsBuilder.build();
String url = uriComponents.toString();
HttpHeaders headers = new HttpHeaders();
headers.add("contentType","application/json");
HttpEntity<String> requestEntity = new HttpEntity<>(headers);
ResponseEntity<T> responseEntity = restTemplate.exchange(url, method, requestEntity, responseType);
return responseEntity.getBody();
}
return null;
}
Json文档
@JsonIgnoreProperties(ignoreUnknown = false)
public class SiteDocument {
@JsonProperty("id")
private int siteID;
@JsonProperty("site_name")
private String siteName;
@JsonProperty("url")
private String url;
}
函数调用
perform(null, "/sites", SiteDocument[].class, HTTP.get,null)
JSON响应
{
"items":[
{
"id":5841970702,
"site_name":"test",
"url":"http://sample/again/",
"pages":2,
"policies":0,
"product":[
"quality_assurance",
"accessibility",
"seo",
"policy"
],
"_links":{
"site":{
"href":"https://api.siteimprove.com/v2/sites/5841970702"
}
}
},
{
"id":5881398958,
"site_name":"preview.site",
"url":"http://sample.site",
"pages":0,
"policies":0,
"product":[
"quality_assurance",
"policy"
],
"_links":{
"site":{
"href":"https://api.siteimprove.com/v2/sites/5881398958"
}
}
}
],
"total_items":5,
"total_pages":1,
"links":{
"self":{
"href":"https://api.siteimprove.com/v2/sites"
}
}
}
headers.add("Accept","application/json");
headers.add("Content-Type","application/json");
问题在POM文件中。POM文件中未添加运行时依赖项。将在POM文件中添加以下依赖项。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>runtime</scope>
</dependency>
问题内容: 我想从Http get响应中获取一个对象: 这是我当前对Http get的代码: 这是convertSteamToString函数: 现在,我只是得到一个字符串对象。我如何找回JSON对象。 问题答案: 您获得的字符串只是JSON Object.toString()。这意味着您将获取JSON对象,但使用String格式。 如果应该获取JSON对象,则可以输入:
我想从Http get响应中获取一个对象: 这是我当前的Http get代码: 这是转换的SteamToString函数: 现在我只是得到一个字符串对象。如何取回JSON对象。
问题内容: 我在服务器上运行了一个Web服务,该服务以XML格式或JSON格式返回数据。我想请求JSON格式,但使用HTTP Post方法。 任何帮助,不胜感激。 提前致谢。 问题答案: 这是适用于JSON发布请求的代码,TouchJSON Framework用于解析JSON,谢谢“ schwa”。
问题内容: 我知道曾经有一种使用apache commons来获取它的方法,如此处记录的:http : //hc.apache.org/httpclient-legacy/apidocs/org/apache/commons/httpclient/HttpMethod.html 和此处的示例: http://www.kodejava.org/examples/416.html 但我认为这已被弃用。
我试图弄清楚是否有可能返回某种流(可能是内存流?)我从我的桶里得到的东西。 S3 bucket包含很多不同类型的图像、文档等。所有这些都应该在我的网站上使用。但是,我不想显示AWS S3存储桶的路径 这就是为什么我试图创建一个流,并动态显示图像和可下载文档,而不是使用完整路径。这有意义吗?:-) 我用的是C#/。NET AWS SDK。 期待听到任何想法和方向指向!
我有一个asp。net应用程序,带有前端和web api部分。我希望移动应用程序能够使用受保护的web apiendpoint。这意味着我需要登录并在本机移动应用程序中处理身份验证令牌。 现在,登录到asp.net应用程序的唯一方法是通过默认asp.net /Account/Login页面。当我发布到登录终结点时,返回的正文只包含我的应用程序的html。令牌然后由asp.net.存储在cookie