私はこのAPIを持っていますhttp://my-api.mydoctorfinder.com/ あなたが入力した電子メールとパスワードに応じてブール値を返します。SwiftでリクエストをPOSTする方法
私の問題は、正しい電子メールとパスワードを使用しても、常にfalseを返すということです。
電子メールとパスワードを含む辞書を作成してから正しいパラメータを送信しなかった可能性があります。その後、NSJSONSerialization.dataWithJSONObjectメソッドで渡しました
ところで、私はSwiftyJsonを使用していました。
これは私のコード
//creates a dictionary and calls the PostRequest method
func attemptLogIn(email: String, password: String) {
let route = loggerURL
let body: [String:String] = ["email":email, "password":password]
makeHTTPPostRequest(route, body: body)
}
//performs post request
private func makeHTTPPostRequest(path: String, body: [String: AnyObject]) {
let request = NSMutableURLRequest(URL: NSURL(string: path)!)
// Set the method to POST
request.HTTPMethod = "POST"
do {
// Set the POST body for the request
let jsonBody = try NSJSONSerialization.dataWithJSONObject(body, options: .PrettyPrinted)
request.HTTPBody = jsonBody
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if let jsonData = data {
let json:JSON = JSON(data: jsonData)
//onCompletion(json, nil)
print("The Response: ")
print(json)
} else {
//onCompletion(nil, error)
print("The Response: ")
print("Hello")
}
})
task.resume()
} catch {
// Create your personal error
//onCompletion(nil, nil)
}
}
あなたのAPIドキュメントは、 'application/json'リクエスト、' application/x-www-form-urlencoded'リクエスト、あるいはXMLなど何かを期待しているかどうかをすぐには明らかにしません。 (JSONレスポンスを生成する可能性があるからといって、リクエストがJSONであることを必ずしも意味するものではありません)。リクエストはJSONでなければなりませんが、もしそうなら、 'Content-Type'ヘッダをJosipによって記載されている。ちなみに、あなたはそれが「常に偽ります」と言っています。 'レスポンス'はどのように見えますか? 「エラー」? JSONの解析が失敗した場合、 'data'には何が含まれていましたか? – Rob