別のアプリケーションを開くためにNSURLを構築しようとすると、私は(null)
エラーを受けています。JSONを含むNSURLがnullを返す
URLは
ms-test-app://eventSourceId=evtSrcId&eventID=13675016&eventType=0&json={"meterresults":[{"clean":"2","raw":"2","status":"0"}]}
をする必要がありますが、私は私のURLを構築しようとすると、それは常にnullです。
最初はURL自体と関係があると思っていましたが、これは例hereから取得したものと同じです。
別の考えでは、IOSがJSONの二重引用符に問題がありましたが、私は%22
に置き換えましたが、これも機能しません。
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];
私が間違っているところ私にはわからないと誰かが任意のアイデアを得た場合、私は喜んでいるだろう。ここでは
は私がURLを構築するコードは、あります。
ありがとうございます。
コードで警告/エラーがスローされますか? "NSString * encodedQueryString = [NSString stringWithFormat:@"?eventSourceId =%@&eventID =%d&eventType = 0&json =%@ "、eventSourceId、_eventId、jsonString]; [NSCharacterSet URLQueryAllowedCharacterSet]]' should ... – Larme
本当に送信できますか? JSONをURLパラメータとして使用しますか? – Droppy
速い返答をありがとう。私は私の誤りを見つけました。中括弧と 'encodedQueryString'を' [jsonString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]に置き換えなければならない問題。このようにして、すべての中カッコと二重引用符がエンコードされ、有効なURLが作成されます。しかし、私はまだ問題を抱えている、他のアプリは本当にURLを処理していない。 – Syrinscaper