Ich bekomme immer einen (null)
Fehler, wenn ich versuche, meine NSURL zu erstellen, um eine andere App zu öffnen.NSURL mit JSON gibt null zurück
Die URL-
ms-test-app://eventSourceId=evtSrcId&eventID=13675016&eventType=0&json={"meterresults":[{"clean":"2","raw":"2","status":"0"}]}
sein, aber wenn ich versuche, meine URL zu erstellen, es ist immer null.
Zuerst dachte ich, dass es etwas mit der URL selbst zu tun hat, aber es ist das gleiche wie ich es aus dem Beispiel here.
Ein anderer Gedanke war, dass IOS einige Probleme mit den Anführungszeichen im JSON hatte, aber ich ersetzte sie durch %22
, aber das funktioniert auch nicht. Hier
ist der Code, wo ich die URL erstellen:
NSString *jsonString = [NSString stringWithFormat:@"{%22meterresults%22:[{%22clean%22:%22%@%22,%22raw%22:%22%@%22,%22status%22:%22%@%22}]}", cleanReadingString, rawReadingString, status];
NSLog(@"JSON= %@",jsonString);
//Send the result JSON back to the movilizer app
NSString *eventSourceId = @"evtSrcId";
NSString *encodedQueryString = [NSString stringWithFormat:@"?eventSourceId=%@&eventID=%d&eventType=0&json=%@",
eventSourceId, _eventId, jsonString];[NSCharacterSet URLQueryAllowedCharacterSet]]
NSString *urlStr = [NSString stringWithFormat:@"%@%@",
[_endpointUrls objectForKey:[NSNumber numberWithInt:(int)_selectedEndpoint]],
encodedQueryString];
NSURL *url = [NSURL URLWithString:urlStr];
Ich weiß nicht, wo ich falsch bin, und ich würde mich freuen, wenn jemand eine Idee bekam.
Vielen Dank im Voraus.
Erzeugt Ihr Code Warnungen/Fehler? Weil 'NSString * encodedQueryString = [NSString StringWithFormat: @"? EventSourceId =% @ & eventID =% d & eventType = 0 & json =% @ ", eventSourceId, _eventId, jsonString]; [NSCharacterSet URLQueryAllowedCharacterSet]] sollte ... – Larme
Kannst du wirklich senden JSON als URL-Parameter? – Droppy
Danke für die schnellen Antworten. Ich habe meinen Fehler gefunden. Das Problem, wo die geschweiften Klammern und ich 'codedQueryString' durch' [jsonString stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLQueryAllowedCharacterSet]] 'ersetzen musste. Auf diese Weise werden alle geschweiften Klammern und doppelten Anführungszeichen codiert, wodurch eine gültige URL erstellt wird. Aber ich habe immer noch das Problem, dass die andere App die URL nicht wirklich verarbeitet. – Syrinscaper