質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

2266閲覧

APIをPOSTで叩いてログイン機能を実装したい。Swift

TomofumiKimura

総合スコア65

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2019/02/17 13:23

API初心者の者です。
今ログイン機能を作成しようとしています。
ログインAPI仕様書では 
Requestでkey が id , "hogehoge"のみ有効, password, "pass"のみ有効。

Responseはstatuscode 200なら成功、400なら失敗
statusmessage はsuccessです。

コードの前に自分が考えているログインの流れを書きます。
1ログイン画面でユーザーが入力したhogehogeとpassをサーバーにPOSTする。
2 二つとも合っていたらstatuscode 200で返ってきてuserTokenを取得できる。
id とpassが間違っていたらstatuscode400が返ってくる。

↑こちらで合っているのでしょうか?

自分が書いたコードは以下の通りです。返ってくるJSONはstatuscode 200 なんですが、パラメーターid と password を変えてもstatuscode 200で返ってきてsuccessとなっています。これはどうしてでしょうか?ご教授をお願いします・

Swift4

1mport UIKit 2import Foundation 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Parameters 9 let parameters = ["id": "hogehoge", "password": "pass"] 10 // URL 11 guard let url = URL(string: "https://nakajyo.edadev.net/api/v1/Login.php?id=hogehoge&password=pass") else {return} 12 // Create URLRequest object 13 var request = URLRequest(url: url) 14 request.addValue("application/json", forHTTPHeaderField: "Content-Type") 15 //POSTを指定 16 request.httpMethod = "POST" 17 guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {return} 18 request.httpBody = httpBody 19 // session object作成 20 let session = URLSession.shared 21 session.dataTask(with: request) { (Data, URLResponse, Error) in 22 // RESPONSE 23 if let URLResponse = URLResponse { 24 print(URLResponse) 25 } 26 27 if let Data = Data { 28 do { 29 let json = try JSONSerialization.jsonObject(with: Data, options: []) 30 print(json) 31 }catch { 32 print(Error) 33 } 34 } 35 }.resume() 36 37 38 39 } 40 41 42} 43

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2019/02/18 01:50

サーバー側担当者に確認するのが一番なのではないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問