Yoda API を使用して Alamofire Swift Frameworkを使用してリクエストを送信しようとしています。APIが正しく機能していることを知っています、エンドポイントをMashape APIキーで複数回テストしたため、リクエストが送信されていることも確認できます(アプリケーションの下のMashapeのホームページ)。ただし、私のJSON応答は常にnil
です。
func handleRequest(words:String){
var saying = words.stringByReplacingOccurrencesOfString(" ", withString: "+");
saying = "?sentence=" + saying;
let url = NSURL(string: (baseURL+saying));
println(url);
var response:String;
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = additionalHeaders;
Alamofire.request(.GET, url!).responseJSON { (_, _, JSON, _) in
println(JSON);
}
}
の 言葉 文字列は「これは私の最初の文です」とすることができ、API仕様に従ってスペースが自動的に「+」に置き換えられます。 無視してください 複数のprintln
ステートメント。デバッグ用です。
これは単なる概念実証コードであり、意図的に多くのエラーチェックを行わないため、そのためかなり美しくありません。あなたが何か提案があれば、私はそれらに感謝します。
なんらかの理由で、JSONのAlamofireリクエストでも私が抱えている問題です。それは私がAlamofireを使用してJSONリクエストを処理する方法です:
Alamofire.request(.GET, urlTo, parameters: nil, encoding: .URL).responseString(completionHandler: {
(request: NSURLRequest, response: NSHTTPURLResponse?, responseBody: String?, error: NSError?) -> Void in
// Convert the response to NSData to handle with SwiftyJSON
if let data = (responseBody as NSString).dataUsingEncoding(NSUTF8StringEncoding) {
let json = JSON(data: data)
println(json)
}
})
SwiftyJSON を使用してJSONをより簡単に管理することを強くお勧めします。
これがお役に立てば幸いです。
Alamofireリクエストには、レスポンスを処理するためのいくつかのメソッドがあります。データレスポンスを処理して文字列に変換してみてください。応答JSONが正常であることを確認します。
Alamofire.request(.GET, url!).response { (_, _, data, error) in
let str = NSString(data: data, encoding: NSUTF8StringEncoding)
println(str)
println(error)
}
また、JSONデータの解析中のチェックアウトエラー。