From 0228b4a074ec7b5969f99d61e6d6057a0e74ba4a Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Wed, 26 Apr 2017 15:48:02 -1000 Subject: [PATCH 01/12] Experimenting with the boundary setting --- lib/restclient/payload.rb | 2 +- lib/restclient/request.rb | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index 56563fa5..27ba9355 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -198,7 +198,7 @@ def handle_key key end def headers - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=#{boundary}}}) + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--TestBoundarySetByAdstream}) end def close diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index a875dc0b..04fae672 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -363,7 +363,8 @@ def process_cookie_args!(uri, headers, args) def make_headers(user_headers) headers = stringify_headers(default_headers).merge(stringify_headers(user_headers)) - # override headers from the payload (e.g. Content-Type, Content-Length) +=begin +# override headers from the payload (e.g. Content-Type, Content-Length) if @payload payload_headers = @payload.headers @@ -382,6 +383,8 @@ def make_headers(user_headers) headers.merge!(payload_headers) end +=end + # merge in cookies cookies = make_cookie_header From 1fc29f274700e4243573d252eb951a079c180ff6 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Wed, 26 Apr 2017 16:31:59 -1000 Subject: [PATCH 02/12] Fix typo --- lib/restclient/payload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index 27ba9355..135d9f0d 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -198,7 +198,7 @@ def handle_key key end def headers - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--TestBoundarySetByAdstream}) + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--TestBoundarySetByAdstream}}) end def close From d506a0fead2676e3839fd1115ccfee62ea651baa Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Wed, 26 Apr 2017 16:44:16 -1000 Subject: [PATCH 03/12] Uncomment code --- lib/restclient/request.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index 04fae672..2170e961 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -363,8 +363,8 @@ def process_cookie_args!(uri, headers, args) def make_headers(user_headers) headers = stringify_headers(default_headers).merge(stringify_headers(user_headers)) -=begin -# override headers from the payload (e.g. Content-Type, Content-Length) + + # override headers from the payload (e.g. Content-Type, Content-Length) if @payload payload_headers = @payload.headers @@ -383,7 +383,7 @@ def make_headers(user_headers) headers.merge!(payload_headers) end -=end + # merge in cookies From 5e7e837cddb0b21e3e23fbcc785e0ebfab5f9d26 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Wed, 26 Apr 2017 16:44:34 -1000 Subject: [PATCH 04/12] Remove unnecessary spaces --- lib/restclient/request.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index 2170e961..a875dc0b 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -363,7 +363,6 @@ def process_cookie_args!(uri, headers, args) def make_headers(user_headers) headers = stringify_headers(default_headers).merge(stringify_headers(user_headers)) - # override headers from the payload (e.g. Content-Type, Content-Length) if @payload payload_headers = @payload.headers @@ -384,8 +383,6 @@ def make_headers(user_headers) headers.merge!(payload_headers) end - - # merge in cookies cookies = make_cookie_header if cookies && !cookies.empty? From 524bfb5aad60fcb708cc7d655532bd2115d4e755 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Wed, 26 Apr 2017 16:54:39 -1000 Subject: [PATCH 05/12] Change boundary value --- lib/restclient/payload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index 135d9f0d..99351972 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -198,7 +198,7 @@ def handle_key key end def headers - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--TestBoundarySetByAdstream}}) + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) end def close From 6d636df5f0dbe78002ca7a06d8074d1f24fe5af6 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 26 Apr 2017 20:18:32 -1000 Subject: [PATCH 06/12] Updating boundary to remove hyphens --- lib/restclient/payload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index 99351972..07e514d6 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -198,7 +198,7 @@ def handle_key key end def headers - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=--ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) end def close From cbb3754b912cfa313082d36eec2154574e959d77 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Thu, 27 Apr 2017 10:30:45 -1000 Subject: [PATCH 07/12] Further testing with Restclient --- lib/restclient/request.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index a875dc0b..9cadf717 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -365,6 +365,7 @@ def make_headers(user_headers) # override headers from the payload (e.g. Content-Type, Content-Length) if @payload + puts "The RESTCLIENT headers are...: #{headers}" payload_headers = @payload.headers # Warn the user if we override any headers that were previously From 5636355d1b83b0bff840efa8679a5811adb6c965 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Thu, 27 Apr 2017 10:49:02 -1000 Subject: [PATCH 08/12] Clean up test printlns, change logic in Payload request to use parent content type if possible --- lib/restclient/payload.rb | 8 ++++++-- lib/restclient/request.rb | 3 +-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index 07e514d6..fb267706 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -197,8 +197,12 @@ def handle_key key key end - def headers - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) + def headers(context_type_header) + context_type = context_type_header.present? ? + {'Content-Type' => %Q{#{context_type_header}}} : + {'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}} + + super.merge(context_type) end def close diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index 9cadf717..7b9e26f5 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -365,8 +365,7 @@ def make_headers(user_headers) # override headers from the payload (e.g. Content-Type, Content-Length) if @payload - puts "The RESTCLIENT headers are...: #{headers}" - payload_headers = @payload.headers + payload_headers = @payload.headers(headers["Content-Type"]) # Warn the user if we override any headers that were previously # present. This usually indicates that rest-client was passed From ff4449575aa347c44c09e203dff1e68d6e370855 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Thu, 27 Apr 2017 10:57:46 -1000 Subject: [PATCH 09/12] temporarily reverting the payload headers method --- lib/restclient/payload.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index fb267706..dc82c03a 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -198,11 +198,14 @@ def handle_key key end def headers(context_type_header) +=begin context_type = context_type_header.present? ? {'Content-Type' => %Q{#{context_type_header}}} : {'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}} +=end - super.merge(context_type) + + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) end def close From fa6f5b03c1659e2d6623d52a04306b0701675c17 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Thu, 27 Apr 2017 11:03:40 -1000 Subject: [PATCH 10/12] Reverting changes, added todo --- lib/restclient/payload.rb | 10 ++-------- lib/restclient/request.rb | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index dc82c03a..f51321b4 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -197,14 +197,8 @@ def handle_key key key end - def headers(context_type_header) -=begin - context_type = context_type_header.present? ? - {'Content-Type' => %Q{#{context_type_header}}} : - {'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}} -=end - - + def headers + # TODO: Update to allow user to pass in boundary in execute call super.merge({'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) end diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index 7b9e26f5..a875dc0b 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -365,7 +365,7 @@ def make_headers(user_headers) # override headers from the payload (e.g. Content-Type, Content-Length) if @payload - payload_headers = @payload.headers(headers["Content-Type"]) + payload_headers = @payload.headers # Warn the user if we override any headers that were previously # present. This usually indicates that rest-client was passed From 4e7046f174a15bd88b6a6611166d4a871d261967 Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Mon, 26 Feb 2018 16:49:34 -1000 Subject: [PATCH 11/12] [r] Now accepts a "boundary" arg to manually set this in the request --- lib/restclient/payload.rb | 6 ++++-- lib/restclient/request.rb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index f51321b4..bff087f5 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -8,7 +8,9 @@ module RestClient module Payload extend self - def generate(params) + def generate(params, boundary=nil) + @boundary = boundary if boundary + if params.is_a?(String) Base.new(params) elsif params.is_a?(Hash) @@ -199,7 +201,7 @@ def handle_key key def headers # TODO: Update to allow user to pass in boundary in execute call - super.merge({'Content-Type' => %Q{multipart/form-data; boundary=ABW5FxdjB4-3nf6AYqUutk96-trWPzHdLABW5FxdjB4}}) + super.merge({'Content-Type' => %Q{multipart/form-data; boundary=#{boundary}}}) end def close diff --git a/lib/restclient/request.rb b/lib/restclient/request.rb index a875dc0b..e176156f 100644 --- a/lib/restclient/request.rb +++ b/lib/restclient/request.rb @@ -74,7 +74,7 @@ def initialize args # process cookie arguments found in headers or args @cookie_jar = process_cookie_args!(@uri, @headers, args) - @payload = Payload.generate(args[:payload]) + @payload = Payload.generate(args[:payload], args[:boundary]) @user = args[:user] if args.include?(:user) @password = args[:password] if args.include?(:password) From 0ff5cfe1b579d7e0615d875ed6bde9880af795ed Mon Sep 17 00:00:00 2001 From: Brandon Dean Date: Mon, 26 Feb 2018 16:51:51 -1000 Subject: [PATCH 12/12] remove old comment --- lib/restclient/payload.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/restclient/payload.rb b/lib/restclient/payload.rb index bff087f5..027d0372 100644 --- a/lib/restclient/payload.rb +++ b/lib/restclient/payload.rb @@ -200,7 +200,6 @@ def handle_key key end def headers - # TODO: Update to allow user to pass in boundary in execute call super.merge({'Content-Type' => %Q{multipart/form-data; boundary=#{boundary}}}) end