Railsサーバーに投稿リクエストを送信しようとしているiOSアプリケーションがあります。リクエストメソッドのセット本体はこんな感じ。
- (void)setBody:(NSString *)body{
requestString = body;
NSLog(@"request string: %@",requestString);
[request setHTTPBody:[requestString dataUsingEncoding:NSUTF8StringEncoding]];
}
ログでリクエスト文字列を確認すると、次のように正しく出力されていることがわかります。
{"commit":"Create Order","order":{"price":"1","street_address":"(null)","state":"(null)","country":"USA","city":"(null)","zipcode":"(null)"}}
ただし、データが Web アプリケーションに到達すると、元のエスケープされていない引用符で取得されます。
Parameters: {"{\"commit\":\"Create Order\",\"order\":{\"price\":\"1\",\"street_address\":\"(null)\",\"state\":\"(null)\",\"country\":\"USA\",\"city\":\"it\",\"zipcode\":\"(null)\"}}"=>nil}
可能性はあるかもしれませんが、Railsの問題だとは思いません。
助言がありますか?
元の文字列は別の場所で次のように宣言されています。
NSString *order = [NSString stringWithFormat:@"{\"commit\":\"Create Order\",\"order\":{\"price\":\"%@\",\"street_address\":\"%@\",\"state\":\"%@\",\"country\":\"%@\",\"city\":\"%@\",\"zipcode\":\"%@\"}}",@"1",streetAddressFieldText,stateFieldText,@"USA",cityFieldText,zipFieldText];