IOS
 Computer >> コンピューター >  >> プログラミング >> IOS

Swiftを使用してiOSアプリでHTTPPOSTリクエストを行う方法は?


iOSでhttpリクエストを行うには、DataTaskとセッションを利用します。構成、セッション、URL、リクエスト、およびdataTaskオブジェクトを作成します。実行する手順を見てみましょう。

  • まず、デフォルト構成のセッションオブジェクトを作成する必要があります。

let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
  • 次に、必要なタイプのURLリクエストを作成する必要があります。これは、get、post、delete、またはputのいずれかになります。この例では、「POST」タイプが表示されています。

let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
  • リクエストオブジェクトを作成したら、上記で作成したURLを使用してdataTaskを実行する必要があります。これが、完全なdataTaskメソッドが現在どのように見えるかです。

let dataTask = session.dataTask(with: url!) { data,response,error in
   guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
   else {
      print("error: not a valid http response")
      return
   }
   switch (httpResponse.statusCode) {
      case 200: //success response.
         break
      case 400:
         break
      default:
         break
   }
}
dataTask.resume()
  • これで、これを関数に埋め込んでコードで使用できるようになりました。

func hitAPI(_for URLString:String) {
   let configuration = URLSessionConfiguration.default
   let session = URLSession(configuration: configuration)
   let url = URL(string: URLString)
   //let url = NSURL(string: urlString as String)
   var request : URLRequest = URLRequest(url: url!)
   request.httpMethod = "POST"
   request.addValue("application/json", forHTTPHeaderField: "Content-Type")
   request.addValue("application/json", forHTTPHeaderField: "Accept")
   let dataTask = session.dataTask(with: url!) {
      data,response,error in
      // 1: Check HTTP Response for successful GET request
      guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
      else {
         print("error: not a valid http response")
         return
      }
      switch (httpResponse.statusCode) {
         case 200:
            //success response.
            break
         case 400:
            break
         default:
            break
      }
   }
   dataTask.resume()
}

:一部のAPIにアクセスするには、info.plistファイルでトランスポートセキュリティの例外を許可する必要がある場合があります。

一部のデータを投稿するにはAPIが必要であるため、この例では出力は示されていません。


  1. Swift を使用して Realm データベースを iOS CRUD アプリに追加する方法

    こんにちは、みんな!この記事では、Realm データベースを iOS アプリに追加する方法を学びます。 Realm データベースで CRUD (作成、読み取り、更新、削除) 操作を実行する方法を学習できるように、簡単な ToDo アプリを作成します。 レルムとは? Realm は、開発者にとって使いやすく使いやすいオープンソースのモバイル データベースです。また、iOS アプリの Core Data の代わりとして使用することもできます。 Realm はクロス プラットフォームのモバイル データベースです。つまり、ネイティブの Android および iOS アプリだけでなく、Re

  2. 予算内で App Store に値する iOS アプリのプレビューを作成する方法

    2014 年に、Apple はアプリのプレビューを App Store に追加できるようにしました。アプリのプレビューは、アプリをダウンロードする前にアプリが提供するものを潜在的なユーザーに示す最良の方法です。実際、StoreMaven によると、ユーザーがアプリのプレビューでアプリをインストールする可能性は 3 倍高くなります。 残念ながら、個人制作者の多くは、プロを雇ってアプリのプレビューを作成する予算がありません。最近、私は自分がこの立場にあることに気付きました。掘り下げた後、高品質のアプリ プレビューを作成するための無料ツールをいくつか見つけました。 この投稿では、次のことについて