0

AMF リクエスト本文を次のようにしたいと思います (Charles ログ): ここに画像の説明を入力

Charles に示されているように、「Command」値オブジェクトと「CCLocalPlayerChanges」値オブジェクトがあります。そのようなオブジェクトの値と混同しています。RocketAMF を使用してそれらを作成するにはどうすればよいですか?

そのようなオブジェクトにハッシュを使用してみました:

data = [{
          :method => "load",
          :service => "start.game",
          :player_delta => {:stamina => 0},
          :sequence_num => self.sequence_num,
          :transaction_time => Time.now.to_i.to_s,
          :icp => 0,
        }]

env = RocketAMF::Envelope.new :amf_version => 3
env.messages << RocketAMF::Message.new('BatchController.authenticate_iphone', '/1', data)
body = env.to_s
res = RestClient.post "http://localhost/amf", env.to_s, :content_type => 'application/x-amf'

またはクラスマッピング:

class ClassCommand; attr_accessor :service, :sequence_num, :transaction_time, :icp; end;
command_obj = ClassCommand.new
command_obj.service = "start.game"
command_obj.sequence_num = 0
command_obj.transaction_time = Time.now.to_i.to_s
command_obj.icp = 0
RocketAMF::ClassMapper.define {|m| m.map :as => 'Command', :ruby => 'ClassCommand'}
data = [command_obj]

env = RocketAMF::Envelope.new :amf_version => 3
env.messages << RocketAMF::Message.new('BatchController.authenticate_iphone', '/1', data)
body = env.to_s
res = RestClient.post "http://localhost/amf", env.to_s, :content_type => 'application/x-amf'

しかし、どちらも値を教えてくれません (以下に示すように、両方のオブジェクトの値はチャールズから空です):

ここに画像の説明を入力

私はAMFを初めて使用するので、オブジェクトの値が空であるかどうか、およびRocketAMF gemでそれらを作成する方法が実際に問題になるかどうか疑問に思っています。

4

1 に答える 1

0

あなたの人生を楽にする1つのアイデアは、「charles」リクエストを保存してFile.readから、ルビーで投稿本文で使用することです。

于 2013-04-08T22:42:27.840 に答える