初めてプロジェクトで AFNetworking を使用しようとしていますが、floatdouble
を JSON パラメーターに変換する設定に問題があります。キーと値のペアで NSDictionary を作成しています。NSDictionary はオブジェクトのみを受け入れるため、 double 値は で作成され[NSNumber numberWithDouble: 37.234567]
ます。すべて良い。しかし、辞書をダンプすると、次のようになります。
Dict: {
day = Wednesday;
user = Meltemi;
lat = "37.234567";
long = "-120.123456";
}
これは、HTTP リクエストとして送信されると、次のようになります。lat=%2237.234567%22
そしてlong=%22-120.123456%22
、Sinatra は次のように受信します。
params: { "lat"=>"\"37.750256\"", "long"=>"\"-120.123456\"", ... }
私が欲しい/必要なもの:
Dict: {
day = Wednesday;
user = Meltemi;
lat = 37.234567;
long = -120.123456;
}
API はフォールト トレラントではない可能性がありますが、AFNetworking に引用符を強制的に失わせるにはどうすればよいでしょうか?
編集: AFHTTPClient サブクラスの初期化子を追加:
- (id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if(!self) return nil;
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
[self setParameterEncoding:AFJSONParameterEncoding];
[self setAuthorizationHeaderWithUsername:@"user" password:@"pwd"];
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]; // TODO: right place for this?
return self;
}