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) 个答案