Код: Выделить всё
@RestController
public class AddressController {
@GetMapping("/AddressChecker")
public ModelAndView addressChecker() throws URISyntaxException, IOException, InterruptedException, JSONException {
ModelAndView addressChecker = new ModelAndView("/Address/AddressChecker");
GoogleAddress googleAddress = new GoogleAddress();
googleAddress.setAddress_url("Address Line 1", "Postal Code");
Gson gson = new Gson();
String jsonRequest = gson.toJson(googleAddress);
HttpRequest postRequest = HttpRequest.newBuilder()
.uri(new URI("https://addressvalidation.googleapis.com/v1:validateAddress"))
.header("Authorization", Constants.API_Key)
.POST(HttpRequest.BodyPublishers.ofString(jsonRequest))
.build();
HttpClient httpClient = HttpClient.newHttpClient();
HttpResponse postResponse = httpClient.send(postRequest, HttpResponse.BodyHandlers.ofString());
addressChecker.addObject("postResponse", postResponse.body());
return addressChecker;
}
}
< /code>
и модель: < /p>
public class GoogleAddress {
public GoogleAddress() {
}
private String address;
public String getAddress_url() {
return address;
}
public void setAddress_url(String address, String postCode) throws JSONException {
JSONObject json = new JSONObject();
JSONObject array = new JSONObject();
ArrayList addressLineString = new ArrayList();
addressLineString.add(address);
array.put("addressLines", addressLineString);
array.put("postCode", postCode);
json.put("address", array);
this.address = String.valueOf(json);
}
}
< /code>
Я был в документации и видел, что он ожидает следующего JSON в теле:
{"адрес": {"postalCode": 12345, "Addresslines": ["1600 Amphitheater pkwy"]} < /p>
Я не уверен в том, что вызывает это ошибку, но вернуть, но это вернуть, но вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть, но это вернуть. />object {1}
error {4}
code : 400
message : Invalid value at 'address' (type.googleapis.com/google.type.PostalAddress), \"{\"address\":{\"postalCode\":\"12345\",\"addressLines\":\"Address Line 1]\"}}\"
status : INVALID_ARGUMENT
details [1]
0 {2}
@type : type.googleapis.com/google.rpc.BadRequest
fieldViolations [1]
0 {2}
field : address
description : Invalid value at 'address' (type.googleapis.com/google.type.PostalAddress), \"{\"address\":{\"postalCode\":\"12345\",\"addressLines\":\"[Address Line 1]\"}}\"
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-google-a