有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将XML字符串作为POST参数发送

我正在构建一个服务,向UPS track package API发送POST请求。在PostMan中,这个调用返回一个带有这个URL和这些POST参数的200

URL:https://onlinetools.ups.com/ups.app/xml/Track

Body: form-data

Params:
UPSSecurity
<?xml version="1.0"?> <AccessRequest xml:lang="en-US"> <AccessLicenseNumber>REDACTED</AccessLicenseNumber> <UserId>REDACTED</UserId> <Password>REDACTED</Password> </AccessRequest>
Body
<?xml version="1.0"?> <TrackRequest xml:lang="en-US"> <Request> <TransactionReference> <CustomerContext>Your Test Case Summary Description</CustomerContext> <XpciVersion>1.0</XpciVersion> </TransactionReference> <RequestAction>Track</RequestAction> <RequestOption>activity</RequestOption> </Request> <TrackingNumber>REDACTED</TrackingNumber> </TrackRequest>

我们的应用程序使用OpenFeign和Spring注释定义客户机。我要尝试的解决方案是这样定义我的假客户机:

interface UPSClient {

  @Headers({"SOAPAction: http://onlinetools.ups.com/webservices/TrackBinding/v2.0","Content-Type: application/xml"})
  @PostMapping(
      value = "/Track",
      consumes = MediaType.TEXT_XML_VALUE,
      produces = MediaType.TEXT_XML_VALUE
  )
  ResponseEntity<TrackResponse> getTrackResponse(@RequestBody UPSRequest upsRequest);

并将MyRequestObject定义为

public class UPSRequest {

  String UPSSecurity; // UPSSecurity is a POJO generated from UPS wsdl and marshalled into an XML String

  String Body;  // Body is a POJO generated from UPS wsdl and marshalled into an XML String
}

有谁能推荐一种更干净的方法吗?从UPS端点返回的TrackResponse可以由自定义SOAPDecoder处理,不应该是问题


共 (0) 个答案