Ich verwende AFNetworking
2.0.AFNetworking serialisiert Schrägstrich, wodurch die JSON-Nutzlast ungültig wird
In AFNetworking
, AFHTTPRequestOperationManager
Objekt hat eine API:
(AFHTTPRequestOperation *)POST:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
Er akzeptiert NSDictionary als params für die JSON Payload, die wir zu 'POST' an den Server möchten. In meiner Nutzlast haben folgende I Schlüssel-Wert-Paar:
"buttonActionParam":"/catalog/special/international-calling"
der Veröffentlichung dieser Nutzlast-Server ungültig JSON zurückgibt. Mit Blick auf die Nutzlast auf der Serverseite erkannte ich, dass AFNetworking tatsächlich sendet:
"buttonActionParam":"\/catalog\/special\/international-calling".
Ich weiß, dass AFNetworking
Bibliothek verwendet NSJSONSerialization
‚s Klassenmethode -dataWithJSONObject:
, die dies verursacht. Meine Frage ist:
Q. Wie um dieses Problem zu umgehen?
Nicht sicher, dass ich die Frage verstehe: Sie sagen, dass Sie versuchen, "buttonActionParam" zu senden: "/ catalog/special/international-calling", und das ist genau das, was von AFNetworking gesendet wird Problem? –
Redigiert meine Frage. Musste Flucht Zeichen setzen. :) –
Die 'NSData', die aus' NSJSONSerialization' kommen, sind nicht ganz die gleichen wie auf der Serverseite - es zeigt '{" buttonActionParam ":" \/catalog \/special \/international- Aufruf von "}" in meinem Hex-Editor. Ich frage mich, ob es ein Problem mit der Zeichenkodierung ist - es sieht so aus, als ob der Server aus irgendeinem Grund in einem Extra-Escape steckt. –