他のすべてのスレッドを読み込んでいますが、私の問題はそれらを組み合わせています。だから私は迅速にHTTPを介してPHPサーバーにいくつかのコンテンツを送信しようとしている。 httpタグの本体にイメージbase64のコンテンツを追加するまでは、すべてうまく動作します。私はphpのバックエンドの最大ポストサイズをチェックして、それをしませんでした。迅速に生成された画像コンテンツを貼り付けてクロムに貼り付け、画像があったので、画像に問題はありません。 //ましょうセッション= NSURLSession.sharedSession();HTTP経由でPOSTベース64の画像コンテンツをPHPサーバに送信できません
は、これは私が のlet URL = NSURL(:: "example.com/endpoint https" の文字列)を持っているもののサンプルコードです私はbase64文字列の内容の行のコメントを外したときに
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
var body = "csrf_token=" + (token.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())! as String)
body += "&email=" + (email?.text)!
body += "&first_name=" + (firstName?.text)!
body += "&last_name=" + (lastName?.text)!
body += "&password=" + password!.text!
//body += "&image_content=" + imageContent
body += "&confirm_password=" + confirmPassword!.text!
body += "&provider=" + provider
body += "&pictureURL=" + pictureURL
request.HTTPBody = body.dataUsingEncoding(NSUTF8StringEncoding)
request.addValue("https:example.com/", forHTTPHeaderField: "origin")
request.addValue("https:example.com/endpoint", forHTTPHeaderField: "referrer")
let task = session.dataTaskWithRequest(request) {
(
let data, let response, let error) in
guard let _:NSData = data, let _:NSURLResponse = response where error == nil else {
print("error")
print(data)
print(response)
return;
}
let dataString = NSString(data :data!, encoding: NSUTF8StringEncoding);
print(dataString)
if ((response as! NSHTTPURLResponse).statusCode == 200) {
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("loginAfterSignup", sender: nil)
})
}
else {
dispatch_async(dispatch_get_main_queue(), {
print((response as! NSHTTPURLResponse).statusCode)
print("error code, could not sign up and login")
})
}
}
task.resume()
だから、私は時代遅れの呼び出しに移動し、それが「エラー」を表示します。 httpを介して送信されていない理由はわかりません。私が従わなければならない規則はありますか?一度大きな文字列を追加すると、特定のhttpヘッダーを設定する必要がありますか?私はここに何かを逃していますか ありがとう