【发布时间】:2016-08-25 12:13:12
【问题描述】:
我一直在尝试使用 Spring 的 RestTemplate 从我的 Android 应用程序将心跳发布到 Web 服务,但我不断收到以下错误:
org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [dk.actura.services.HeartBeat]
这里是我使用 RestTemplate 的地方:
RestTemplate restTemplate = new RestTemplate();
// Add the String message converter
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
// Make the HTTP GET request, marshaling the response to a String
HeartBeat heartBeat = new HeartBeat();
return restTemplate.postForObject(url + "SendHeartBeat", heartBeat, String.class);
这是 HeartBeat 类:
public class HeartBeat {
private int Id;
private String SignalType;
private long HeartBeatTime;
private int UnitId;
private short BatteryPercentage;
private short SignalStrength;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getSignalType() {
return SignalType;
}
public void setSignalType(String signalType) {
SignalType = signalType;
}
public long getHeartBeatTime() {
return HeartBeatTime;
}
public void setHeartBeatTime(long heartBeatTime) {
HeartBeatTime = heartBeatTime;
}
public int getUnitId() {
return UnitId;
}
public void setUnitId(int unitId) {
UnitId = unitId;
}
public short getBatteryPercentage() {
return BatteryPercentage;
}
public void setBatteryPercentage(short batteryPercentage) {
BatteryPercentage = batteryPercentage;
}
public short getSignalStrength() {
return SignalStrength;
}
public void setSignalStrength(short signalStrength) {
SignalStrength = signalStrength;
}
public HeartBeat() {
Id = -1;
Date date = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
date = sdf.parse(sdf.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
SignalType = "4G";
HeartBeatTime = date.getTime();
UnitId = 1;
BatteryPercentage = 1;
SignalStrength = 21;
}
public HeartBeat(String signalType, long heartBeatTime, int unitId, short batteryPercentage, short signalStrength) {
SignalType = signalType;
HeartBeatTime = heartBeatTime;
UnitId = unitId;
BatteryPercentage = batteryPercentage;
SignalStrength = signalStrength;
}
}
【问题讨论】:
-
信息很清楚,对吧? spring 将如何将您的对象“心跳”发布到 POST 对象?作为 JSON?作为ASCII,作为序列化二进制?您是否检查过堆栈溢出是否有类似情况? stackoverflow.com/questions/28753773/…stackoverflow.com/questions/13604224/…等等...
-
我很喜欢它以 JSON 格式发布,但我不知道我怎么能告诉它春天