我正在开发一个使用flutter跟踪FedEx包裹的应用程序。我应该在哪里将FedEx Web服务WSDL集成到我的代码中,以便可以将跟踪请求发送到FedEx并获得响应?
当前,我正在测试其他api,并能够通过直接将请求发送到此api的URL来获得响应。但是FedEx Web服务无法以这种方式工作,我必须使用其WSDL来设置网址。
Beer.fromJSON(Map<String, dynamic> jsonMap) :
id = jsonMap['id'],
name = jsonMap['name'],
tagline = jsonMap['tagline'],
description = jsonMap['description'],
image_url = jsonMap['image_url'];
}
Future<Stream<Beer>> getBeers() async {
final String url = 'https://api.punkapi.com/v2/beers';
final client = new http.Client();
final streamedRest = await client.send(
http.Request('get', Uri.parse(url))
);
return streamedRest.stream
.transform(utf8.decoder)
.transform(json.decoder)
.expand((data) => (data as List))
.map((data) => Beer.fromJSON(data));
}
答案 0 :(得分:0)
WSDL不是您导入到应用程序中的东西,或者至少不是使用dart导入的东西。它描述了可以向其服务器支持的各个端点发出的请求。
Fedex's documentation在解释方面做得比我更好:
根据服务的WSDL定义生成对服务的SOAP请求或响应。
WSDL是一个XML文档,它提供有关服务功能,可用方法,其参数和参数类型的信息。它描述了如何与服务进行通信,以便生成对服务的请求或从中解密响应。
WSDL的目的是向客户端完全描述Web服务。 WSDL通常定义服务在何处可用以及使用哪种通信协议与服务进行对话。它定义了编写可与XML Web服务一起使用的程序所需的一切。
很有可能端点实际上使用SOAP进行通信,而dart目前尚不完全支持SOAP。您将必须使用dart:xml之类的东西来生成与WSDL中的描述相匹配的请求,然后才能使用与其他API相同的方式通过http.Client发送请求。 / p>