Swift Alamofire POSTリクエスト(ユーザーにログインするため)でこのエラーメッセージを修正するのに問題があります。
'3840' "文字1の周囲の値が無効です。"
FoundationをインポートしましたAlamofire、SwiftyJson。承認の制限はありません(Oauthなど)。投稿を変更したとき(たとえば、他のパラメーターと値を使用して別のエンドポイントに)したときにも同じエラーメッセージが表示されますが、残りは保持します)私のdrupal7 REST server'definitions 'では、エンドポイントは/ rest/user/loginとして、パラメーターは' username 'として、' password '文字列はI'としてリストされます。使用しました。
ヒントや助けを本当にいただければ幸いです。
rEQUESTの呼び出しエラーエラードメイン= NSCocoaErrorDomainコード= 3840「文字1の周囲の値が無効です。」 UserInfo = {NSDebugDescription =文字1の周囲の値が無効です。}
これは私のコードです
@IBAction func loginButtonTapped(sender: AnyObject) {
//using Alamofire
let dataEndpoint: String = "https://www.example.com/rest/user/login"
let newData = ["username":"Mickey", "password":"123"]
Alamofire.request(.POST, dataEndpoint, parameters: newData, encoding: .JSON)
.responseJSON { response in
guard response.result.error == nil else {
// got an error in posting the data, need to handle it
print("error calling REQUEST")
print(response.result.error!)
return
}
guard let value = response.result.value else {
print("no result data when calling request")
return
}
let data = JSON(value)
print("The result is: " + data.description)
}
}
ありがとうございました
URLエンドポイントの最後に.jsonを追加すると、エラーが解決しました。すなわち https://www.example.com/rest/user/login.json
これは、サーバーからの応答が有効なJSONでなく、読み取り不可能な文字(htmlなど)が含まれていることを示すエラーです。基本的に、アップロードがうまくいかなかった(サーバーで受け入れられなかったため、json応答が表示されなかった)か、そうでなかったことを意味します。 json応答を正しく設定し、htmlが含まれていることを確認します。後者は、ブラウザのページを見てソースを確認することで確認できます。
お役に立てれば!
追伸:実際のコードで有効なURLを使用していると思いますか? ;-)
問題が実際にサーバー側のDjangoでのインポートエラーであったときに、このエラーが発生しました。wiresharkでtcpストリームをたどると、次のようになります。
'ImportError':<type'exceptions.ImportError '>、
エラー「3840文字1の周りの値が無効です」も404ページが見つかりませんエラーだと思います
つまり、Alamofireは実際にはサーバー側に接続していませんでした。
このガイドラインを覚えておいてください: