【发布时间】:2018-11-25 08:14:56
【问题描述】:
我目前正在开发我的第一个 java 程序,它将调用一个 rest api(jira rest api,更具体一点)。
所以,如果我进入浏览器并输入 url = "http://my-jira-domain/rest/api/latest/search?jql=assignee=currentuser()&fields=worklog"
我得到一个包含当前用户所有工作日志的响应(json)。 但我的问题是,我的 java 程序如何做到这一点? 比如,连接到这个 url,获取响应并将其存储在一个对象中?
我使用弹簧,有人知道如何使用它。 提前谢谢各位。
我补充一下,我的代码在这里:
RestTemplate restTemplate = new RestTemplate();
String url;
url = http://my-jira-domain/rest/api/latest/search/jql=assignee=currentuser()&fields=worklog
jiraResponse = restTemplate.getForObject(url,JiraWorklogResponse.class);
JiraWorkLogResponse 是一个简单的类,只有一些属性。
编辑, 我的整个班级:
@Controller
@RequestMapping("/jira/worklogs")
public class JiraWorkLog {
private static final Logger logger = Logger.getLogger(JiraWorkLog.class.getName() );
@RequestMapping(path = "/get", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity getWorkLog() {
RestTemplate restTemplate = new RestTemplate();
String url;
JiraProperties jiraProperties = null;
url = "http://my-jira-domain/rest/api/latest/search?jql=assignee=currentuser()&fields=worklog";
ResponseEntity<JiraWorklogResponse> jiraResponse;
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders = this.createHeaders();
try {
jiraResponse = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<Object>(httpHeaders),JiraWorklogResponse.class);
}catch (Exception e){
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
return ResponseEntity.status(HttpStatus.OK).body(jiraResponse);
}
private HttpHeaders createHeaders(){
HttpHeaders headers = new HttpHeaders(){
{
set("Authorization", "Basic something");
}
};
return headers;
}
此代码正在返回: org.springframework.http.converter.HttpMessageNotWritableException
有人知道为什么吗?
【问题讨论】:
标签: java spring rest jira-rest-api