iOS專案開發實戰——通過Http Get方式與伺服器通訊
移動客戶端往往需要同後臺伺服器進行通訊,上傳或者下載資料,最常用到的方式就是Http Get,現在我們來學習在iOS專案中使用Get方式同伺服器進行通訊。
【一】伺服器端實現
(1)首先要安裝好能進行J2EE開發的Eclipse或者MyEclipse,配置好Tomcat環境。我這裡使用Eclipse Mars,Tomcat版本為8. 然後新建一個Dynamic Web Project。名稱為MyServer。然後在WebContent中新建一個JSP File。名稱為index.當前目錄結構如下:
。
(2)然後在Hello.jsp中實現如下:對於客戶端的請求,我將會返回“Hello 名字”,否則返回No Paras.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
if (name != null) {
out.print("Hello " + name);
} else {
out.print("No Paras");
}
%>
(3)直接點選執行,或者在瀏覽器中輸入url,結果如下:
。
【二】iOS客戶端實現
(1)新建一個iOS專案,Language選擇Swift。然後在storyboard中設計介面如下:
。
(2)然後分別進行控制元件和程式碼的繫結,輸入框TextField和顯示返回結果的TextView進行Outlets繫結,傳送按鈕進行Action繫結;最後實現程式碼如下:
@IBOutlet weak var inputName: UITextField!
@IBOutlet weak var feedbackInfo: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func connectServer(sender: UIButton) {
NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/MyServer/Hello.jsp?name=\(inputName.text)")!),
queue: NSOperationQueue()) { (resp:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
if let d = data{
dispatch_sync(dispatch_get_main_queue(), { () -> Void in
self.feedbackInfo.text = String(NSString(data: d, encoding: NSUTF8StringEncoding)!)
})
}
}
}
其中按鈕的點選事件也可以是下面的形式:
@IBAction func connectServer(sender: UIButton) {
NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/MyServer/Hello.jsp?name=\(inputName.text)")!),
queue: NSOperationQueue.mainQueue()) { (resp:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
if let d = data{
self.feedbackInfo.text = String(NSString(data: d, encoding: NSUTF8StringEncoding)!)
}
}
}
(3)執行程式,實現效果如下:
.
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS專案開發實戰——通過Http Post方式與伺服器通訊iOSHTTP伺服器
- iOS專案開發實戰——使用AFNetworking進行Http Get請求iOSHTTP
- Angular2-專案實戰(續)-與服務端通訊Angular服務端
- 【Lolttery】專案開發日誌 (八)通過事件通知 實現react js元件間通訊事件ReactJS元件
- Laravel 中使用 swoole 專案實戰開發案例一 (建立 swoole 和前端通訊)Laravel前端
- iOS app之間通訊方式iOSAPP
- HTTP通訊HTTP
- Vue之通過http服務開啟build後的專案VueHTTPUI
- Electron-vue開發實戰4——通過CI釋出以及更新的方式Vue
- 通過手寫伺服器的方式,立體學習Http伺服器HTTP
- 一次HTTP通訊過程HTTP
- Extjs 通過 Ext.Direct 實現與 Laravel 通訊JSLaravel
- iOS專案開發實戰——UILabel與取色器的使用iOSUI
- iOS專案開發實戰——實現蘋果本地訊息通知推送服務iOS蘋果
- IOS開發筆記 IOS如何訪問通訊錄iOS筆記
- iOS專案開發實戰——使用CoreLocation實現定位iOS
- 網路通訊6:搭建HTTP伺服器HTTP伺服器
- iOS專案開發實戰——理解frame,bounds,centeriOS
- iOS專案開發實戰——檢視動畫效果iOS動畫
- iOS專案開發實戰——配置自定義動畫iOS動畫
- iOS專案開發實戰——plist陣列解析iOS陣列
- 網路通訊5:執行HTTP的GET/POST請求HTTP
- RabbitMQ實戰:理解訊息通訊MQ
- iOS專案開發實戰——使用三種方式實現頁面跳轉與引數傳遞(一)iOS
- iOS專案開發實戰——使用三種方式實現頁面跳轉與引數傳遞(二)iOS
- iOS專案開發實戰——使用三種方式實現頁面跳轉與引數傳遞(三)iOS
- Android通過https協議與伺服器端進行通訊AndroidHTTP協議伺服器
- iOS開發之通過代理逆向傳值iOS
- 程序通訊方式
- Qt通過Http上傳檔案(路過)QTHTTP
- Flutter與webview通訊橋樑開發FlutterWebView
- C# 通過socket實現UDP 通訊C#UDP
- iOS開發專案實戰——Swift實現圖片輪播與瀏覽iOSSwift
- Flex4之與後臺伺服器通訊方式:WebServiceFlex伺服器Web
- 串列埠通訊與其他通訊方式相比有什麼優勢?串列埠
- HTTP通訊協議HTTP協議
- iOS App間常用的五種通訊方式iOSAPP
- iOS專案開發實戰——使用UICollectionView實現瀑布流iOSUIView