Get JSON-Ergebnis mit GET-Anfrage und Parameter mit Alamofire
Dies ist mein String url mit Parameter.
http://api.room2shop.com/api/product/GetProducts?categoryId=22&filter=2&pageNumber=1 , durch die ich immer meine JSON Daten. Ich habe AFWrapper.swift-Datei, in die ich definiert habe, die Funktion GETrequest.
import UIKit
import Alamofire
import SwiftyJSON
class AFWrapper: NSObject {
class func requestGETURL(strURL: String, params : [String : AnyObject]?, success:(JSON) -> Void, failure:(NSError) -> Void) {
Alamofire.request(.GET, strURL, parameters: params, encoding: ParameterEncoding.JSON).responseJSON { (responseObject) -> Void in
print(responseObject)
if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : NSError = responseObject.result.error!
failure(error)
}
}
}
}
Nun rufe ich diese Funktion in meiner ViewController.swift-Datei.
let strURL = "http://api.room2shop.com/api/product/GetProducts"
let param = ["categoryId": "22", "filter": "2", "pageNumber": "1"]
AFWrapper.requestGETURL(strURL, params: param, success: {
(JSONResponse) -> Void in
if let resData = JSONResponse["ProductList"].arrayObject {
for item in resData {
self.TableData.append(datastruct(add: item as! NSDictionary))
}
do
{
try self.read()
}
catch
{
}
self.do_table_refresh()
}
}) {
(error) -> Void in
print(error)
}
aber es wird nicht geben mir keine Antwort und mir dieser Fehler.
FEHLER: Error Domain=NSURLErrorDomain Code=-1017 "kann nicht analysiert werden
Antwort"
UserInfo={NSErrorFailingURLStringKey=http://api.room2shop.com/api/product/GetProducts,
_kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=http://api.room2shop.com/api/product/GetProducts,
NSLocalizedDescription=nicht analysiert werden kann Antwort,
_kCFStreamErrorDomainKey=4, NSUnderlyingError=0x78ecf180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)"
UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1}}}
Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response"
UserInfo={NSErrorFailingURLStringKey=http://api.room2shop.com/api/product/GetProducts,
_kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=http://api.room2shop.com/api/product/GetProducts,
NSLocalizedDescription=nicht analysiert werden kann Antwort,
_kCFStreamErrorDomainKey=4, NSUnderlyingError=0x78ecf180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)"
UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1}}}
Kann mir jemand sagen was ich falsch mache? Ich habe seached dieser link, aber nicht immer, was falsch ist. URL-Codieren, Alamofire GET-Parametern mit SwiftyJSON
InformationsquelleAutor Riddhi Shah | 2016-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich denke, Sie sollten entfernen Sie den parameter " - encoding: ParameterEncoding.JSON",wie dieses:
InformationsquelleAutor michael wang
Ihre
requestGETURL
Aussehen sollte, dassDein problem wurde in
params
es sollte[String:String]
Wörterbuch. Auch Sie müssen nicht zu erklären, Codierungencoding:ParameterEncoding.JSON
.Hoffe, es hilft Ihnen
InformationsquelleAutor kamwysoc
Diesen code verwenden. Es ist das abrufen von Antwort richtig analysiert wird im JSON-Format.
Mit Alamofire v3.0+
EDIT:
Für die Annahme der Parameter mit GET-Typ Service:
In diesem Fall versuchen Sie nicht zu manipulieren Ihre URL-Zeichenfolge und sendet alle Parameter in Bezug auf Wörterbuch wie dieses.
Es gibt zwei Möglichkeiten, Ihre Web-Service-Parameter entweder durch String-Manipulation (ich.e Angabe von Parametern im URL-String) oder einen Dienst, der akzeptiert die Parameter im JSON-format, aber in diesem Fall Ihre URL sollte sauber sein, ohne irgendwelche Parameter drin. (dies ist eine gute übung). Für die Aufnahme-Parameter als JSON-innen einen service BEKOMMEN bin ich Editier meine Antwort. Check!
Yah.. ich habe es gelöst..
InformationsquelleAutor n.by.n