json 문자열을 반환하는 localhost API (iOS 신속 응용 프로그램과 함께 빌드해야 함)에 연결하려고합니다. API는 Laravel 4 프레임 워크로 작성되었습니다.코코아 오류 3840 작업을 완료 할 수 없습니다.
func checkEmail() {
var request = NSMutableURLRequest(URL: NSURL(string: "http://localhost:3306/laravel/rojectapi/checkEmail"))
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var params = ["email":"[email protected]", "password":"password"] as Dictionary
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as NSDictionary
println("hey")
if(err) {
println(err!.localizedDescription)
}
else {
var success = json["success"] as? Int
println("Success: \(success)")
}
})
task.resume()
}
Laravel PHP 경로 : 여기서
은 연결 코드를 수신하는 아이폰 OS 스위프트 코드 : 다음Route::post('/checkEmail', array(
'as' => 'checkEmail',
'uses' => '[email protected]'
));
그리고 위해 checkEmail 법 프런트 엔드 컨트롤러
public function checkEmail() {
$validator = Validator::make(Input::all(), array(
'email' => 'required|unique:users|email'
));
if($validator->fails()) {
return $validator->messages()->toJson();
} else {
return Response::json(array('success' => true));
}
}
서버에 올바르게 연결되지 않았습니까? 에뮬레이터뿐 아니라 내 랩톱에 연결된 iPhone 5에서도이 작업을 수행해야합니다. URL에 name.local
, localhost:<post>
및 을 시도했습니다.
업데이트
나는 (스위프트의 .AllowFragments
) NSJSONReadingAllowFragments
을 통과 this tutorial
디버거에 기록 된'strData'의 내용을 게시하십시오. – duci9y