首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

移動端通過 URL 訪問 WebService 接口:SOAP/REST 協議選擇與調用方式

     編輯:程式設計綜合問答

手機端調用 Java 服務端 WebService,核心取決於**服務端暴露的協議類型**。

兩大主流協議

協議特點手機端調用
SOAP (WSDL)XML 嚴格契約、WS-* 安全/事務、企業級標準ksoap2-android (Java) / WCF (C#) / Alamofire+XMLMapper (iOS) — 較重
REST/HTTP + JSON輕量、語義化 URL、無狀態、瀏覽器可調試原生 `HttpURLConnection` / OkHttp / Retrofit / AFNetworking / `fetch` — **首選**

REST 實踐建議

  1. 服務端 (Spring Boot) 暴露:`@GetMapping("/api/users/{id}")` 返回 JSON。
  2. Android (Kotlin + Retrofit):
    interface Api { @GET("users/{id}") suspend fun getUser(@Path("id") String id): User }
    val user = Retrofit.Builder().baseUrl("https://api.example.com/").build().create(Api::class.java).getUser("123")
    
  3. iOS (Swift + URLSession):
    let url = URL(string: "https://api.example.com/api/users/123")!
    let (data, _) = try await URLSession.shared.data(from: url)
    let user = try JSONDecoder().decode(User.self, from: data)
    

若服務端僅有 SOAP

  • Android 引入 `ksoap2-android:3.6.4`,手動構造 `SoapObject`、`SoapSerializationEnvelope`、`HttpTransportSE` 調用 — 代碼冗長、維護痛苦。
  • **強烈建議服務端同步提供 REST Facade**,或用 API Gateway (Kong/Apisix) 做協議轉換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved