綜述: 您好。我正嘗試使用Android中的FlightAware api獲取航班數據(航班路線和其他)。我不確定要完成這個任務的最好方法是什麼。我應該提到我有一個有效的用戶名和api密鑰。我正在使用Android Studio。使用Android系統中的FlightAware API
爲了更好地瞭解我在尋找什麼樣的信息,你可以看看他們的JavaScript example。下面是一個HTML頁面(他們的JavaScript示例)的圖片,該頁面允許使用FlightAware api中的數據在地圖上直觀顯示航線路徑: https://i.gyazo.com/ab7bb4560e698ae00dc9ef9a52eca64c.jpg。我有一種方法可以直觀地表示我的應用程序中的數據;我首先需要一種方式來獲取數據(在Android中)。
問題:因此,考慮到這一點,我如何查詢航班信息,就像你在Android上面的例子中看到的那樣?
不成功的嘗試:如果您轉到FlightAware站點的代碼示例部分,可以查看許多建議的實現api的方法。自然,我向下滾動到Java部分,因爲Android使用了相當大的Java部分。然後我嘗試在Android中實現NetBeans示例。問題是,我不確定如何使用Android Studio中提供的WSDL(以前從未聽說過WSDL)鏈接。我認爲這只是可以轉換成Java類的XML?我嘗試使用WSDL2Code(網站)將WSDL轉換爲我可以使用的Java類;這工作在一定程度上,但不能轉換所有我需要的類(仍然缺少一些)。然後我嘗試了Android插件EasyWSDL生成器(免費版),但生成的Java類比WSDL2Code少。最後,我進入NetBeans IDE並從WSDL鏈接生成Java類,並能夠生成所有Java類。但是,它們似乎在Android中不起作用,因爲通過NetBeans生成的Java類傾向於導入javax.xml.bind.annotation
,這似乎並未包含在Android中。
下面是生成的Java類之一的一個例子,我從NetBeans中複製過來:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for EnrouteRequest complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="EnrouteRequest">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="airport" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="howMany" type="{http://www.w3.org/2001/XMLSchema}int"/>
* <element name="filter" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="offset" type="{http://www.w3.org/2001/XMLSchema}int"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EnrouteRequest", propOrder = {
"airport",
"howMany",
"filter",
"offset"
})
public class EnrouteRequest {
@XmlElement(required = true)
protected String airport;
protected int howMany;
@XmlElement(required = true)
protected String filter;
protected int offset;
/**
* Gets the value of the airport property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAirport() {
return airport;
}
/**
* Sets the value of the airport property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAirport(String value) {
this.airport = value;
}
任何幫助將不勝感激!
能否請您發佈您的代碼? –