Вы можете попробовать что-то вроде:
final String url = String.format("%s/api/shop/{id}", Global.webserviceUrl);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", Global.deviceID);
Shop shop= new Shop();
Map param = new HashMap();
param.put("id","10")
HttpEntity requestEntity = new HttpEntity(shop, headers);
HttpEntity response = restTemplate.exchange(url, HttpMethod.PUT, requestEntity, Shop[].class, param);
shops = response.getBody();
put возвращает void, тогда как обмен получит ответ, лучшим местом для проверки будет документация https: //docs.spring. И.О. / весна / Docs / ток / Javadoc-апи / орг / springframework / веб / клиент / RestTemplate.html
HC-05 / HC-06 принимает строку как последовательность символов. Если вы хотите отправить 255, то HC-05 принимает это как «2», «5», «5». Итак, ваша первая работа - определить, является ли это целое число или строка. Я добавил другой префикс перед целым числом и строкой и общий постфикс ('#'), по которому я могу определить конец ввода. Надеюсь, это поможет вам.
while (Serial.available()) {
delay(3); //small delay to allow input buffer to fill
char c = Serial.read(); //gets one byte from serial buffer
if (c == '#') {
break;
} //breaks out of capture loop to print readstring
readString += c;
}
Теперь, после того, как вы взяли все биты, вам нужно выяснить, что вы взяли с помощью префикса.
if (readString.charAt(0) == 'i')
{
//"i255,255,255#"
readString.replace("i", "0");
value1 = readString.substring(1, 3).toInt();
value2 = readString.substring(5, 7).toInt();
value3 = readString.substring(8, 11).toInt();
readString = "";
}
else if (readString.charAt(0) == 's')
{
//Do as you wish
readString = "";
}