[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
2022-03-23 23:33:43
質問
読む プログラミング言語「Swift が、SwiftでHTTPリクエスト(cURLのようなもの)をする方法が分かりません。Obj-Cのクラスをインポートする必要があるのでしょうか、それともデフォルトのライブラリをインポートすればいいのでしょうか?または、ネイティブのSwiftコードに基づいてHTTPリクエストを作成することは不可能ですか?
どのように解決するのですか?
を使用することができます。
URL
,
URLRequest
と
URLSession
または
NSURLConnection
は、Objective-Cで通常行うのと同じです。なお、iOS 7.0以降では
URLSession
が望ましいとされています。
使用方法
URLSession
を初期化する
URL
オブジェクトと
URLSessionDataTask
から
URLSession
. そして、タスクを
resume()
.
let url = URL(string: "http://www.stackoverflow.com")!
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
task.resume()
使用方法
NSURLConnection
まず
URL
と
URLRequest
:
let url = URL(string: "http://www.stackoverflow.com")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
で、非同期でリクエストを読み込むことができます。
NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main) {(response, data, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
または
NSURLConnection
:
let connection = NSURLConnection(request: request, delegate:nil, startImmediately: true)
デリゲートには、必ず他のものを設定してください。
nil
を作成し、デリゲートメソッドを使用してレスポンスと受信データを処理します。
詳しくは
のドキュメントを参照してください。
NSURLConnectionDataDelegate
プロトコル
Xcodeプレイグラウンドでのテスト
このコードをXcodeのプレイグラウンドで試したい場合は、以下のコードを追加してください。
import PlaygroundSupport
をプレイグラウンドに追加し、以下の呼び出しを行います。
PlaygroundPage.current.needsIndefiniteExecution = true
これにより、プレイグラウンドで非同期コードを使用することができるようになります。
関連
-
[解決済み] トランスポートセキュリティがクリアテキストのHTTPをブロックしています。
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み】SwiftでplistをDictionaryとして取得するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み】iOS 9でApp Transport Securityを有効にしてHTTP URLを読み込むにはどうすればいいですか?重複