使用HttpParty(Ruby/HttpParty)的正文中出现语法错误
我只是遇到了一个错误,真的不知道如何解决这个问题 我正在尝试的是:使用HttpParty(Ruby/HttpParty)的正文中出现语法错误,ruby,httparty,Ruby,Httparty,我只是遇到了一个错误,真的不知道如何解决这个问题 我正在尝试的是: class Addresses include HTTParty base_uri "https://reservedurl.com/" def self.api_search search = get('members/api/default/member/addresses') end def self.api_change_address(street, new_zip, n) change_addre
class Addresses
include HTTParty
base_uri "https://reservedurl.com/"
def self.api_search
search = get('members/api/default/member/addresses')
end
def self.api_change_address(street, new_zip, n)
change_address = patch('members/api/default/member', {
:body => {
:'option_id' => '1'
:'address' => {
:'address_id' => '3',
:'street_name' => '#{street}',
:'alias' => 'Address',
:'address_number' => '#{n}',
:'additional_information' => 'New',
:'reference_point' => 'New',
:'city' => 'NY',
:'country_code' => 55,
:'district' => 'New',
:'postal_code' => '#{new_zip}',
:'state' => 'NY',
:'default' => true,
:'address_name' => 'string',
}
}.to_json
:headers => {
:'Content-Type' => 'application/x-www-form-urlencoded',
:'charset' => 'utf-8',
:'Host' => 'reservedurl.com',
:'Accept-Encoding' => 'gzip, deflate',
:'Accept' => '*/*',
:'Postman-Token' => 'token'
}
})
end
API主体:
{
"option_id": "1",
"address": {
"address_id": "token",
"street_name": "Jack, St",
"alias": "Address",
"address_number": "213",
"additional_information": "New",
"reference_point": "New",
"city": "DC",
"country_code": 55,
"district": "WS",
"postal_code": "0453401",
"state": "WS",
"default": true,
"address_name": "string"
}
}
我得到了这个错误:
*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows
c:/features/support/this_page.rb:13: syntax error, unexpected tSYMBEG, expecting '}'
:'address' => {
^~
c:/features/support/this_page.rb:13: syntax error, unexpected =>, expecting end
:'address' => {
^~
c:/features/support/this_page.rb:28: syntax error, unexpected '}', expecting end
}.to_json
^
c:/features/support/this_page.rb:29: syntax error, unexpected =>, expecting end
:headers => {
^~
c:/features/support/this_page.rb:37: syntax error, unexpected '}', expecting end
})
^ (SyntaxError)
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/glue/registry_and_more.rb:107:in `load'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/glue/registry_and_more.rb:107:in `load_code_file'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:144:in `load_file'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:85:in `block in load_files!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:84:in `each'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:84:in `load_files!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime.rb:272:in `load_step_definitions'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime.rb:68:in `run!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/cli/main.rb:34:in `execute!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/bin/cucumber:9:in `<top (required)>'
C:/Ruby26-x64/bin/cucumber:23:in `load'
C:/Ruby26-x64/bin/cucumber:23:in `<main>'
***警告:您必须使用ANSICON 1.31或更高版本(https://github.com/adoxa/ansicon/)在窗口上获取彩色输出
c:/features/support/this_page.rb:13:语法错误,意外的tSYMBEG,应为“}”
:“地址”=>{
^~
c:/features/support/this_page.rb:13:语法错误,意外=>,预期结束
:“地址”=>{
^~
c:/features/support/this_page.rb:28:语法错误,意外“}”,预期结束
}.to_json
^
c:/features/support/this_page.rb:29:语法错误,意外=>,预期结束
:标题=>{
^~
c:/features/support/this_page.rb:37:语法错误,意外“}”,预期结束
})
^(SyntaxError)
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/glue/registry_和_more.rb:107:in'load'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/glue/registry_和_more.rb:107:in'load_code_file'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:144:in'load_file'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:85:in`block in load_files!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:84:in'each'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime/support_code.rb:84:in'load_files!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime.rb:272:in'load_step_definitions'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/runtime.rb:68:in'run!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/lib/cucumber/cli/main.rb:34:in'execute!'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/cucumber-3.1.2/bin/cucumber:9:in`'
C:/Ruby26-x64/bin/cumber:23:in‘load’
C:/Ruby26-x64/bin/cumber:23:in`'
我真的不明白为什么HTTParty不允许我使用这个身体。我明白什么?错误在于括号本身,但我正试图准确地传递API是如何实现的。如果我删除地址行中的括号,我的API将不会读取正文。在
之后缺少逗号:'option\u id'=>'1'
和}。对于_json,
:
{
:body => {
:'option_id' => '1',
:'address' => {
:'address_id' => '3',
:'street_name' => '#{street}',
:'alias' => 'Address',
:'address_number' => '#{n}',
:'additional_information' => 'New',
:'reference_point' => 'New',
:'city' => 'NY',
:'country_code' => 55,
:'district' => 'New',
:'postal_code' => '#{new_zip}',
:'state' => 'NY',
:'default' => true,
:'address_name' => 'string',
}
}.to_json,
:headers => {
:'Content-Type' => 'application/x-www-form-urlencoded',
:'charset' => 'utf-8',
:'Host' => 'reservedurl.com',
:'Accept-Encoding' => 'gzip, deflate',
:'Accept' => '*/*',
:'Postman-Token' => 'token'
}
}
在结束
{}
@Sebastian Palma相同的错误后,您可能需要将移动到\u json
。您在'option\u id'=>'1'
和结束正文
哈希中遗漏了一些逗号。谢谢@Sebastian Palma,我甚至看不到这些逗号读得太多。很抱歉,哈哈哈,我没有看到逗号,甚至阅读了很多次,谢谢Anotherm。我现在觉得自己太傻了哈哈哈。我被否决了,因为我的回答是正确的,并且在评论指出同样的事情之前发布了答案。