How do I view the response cookies from a HTTParty get request? - ruby

I'm using httparty to do a GET request to a certain website. I need the response cookies in order to successfully make a POST request to login.
rest_client makes it really easy, all I have to do is:
get_request = RestClient.get('<REDACTED>')
response_cookies = get_request.cookies
# =>
{
"sessiontype"=>"mpb",
"aac"=>"741F9EC20A4C422369F7564445611591",
"Expires"=>"Sun",
"Path"=>"%2F",
"Domain"=>"<REDACTED>",
"internetbankierenmi"=>"1559079104.20480.0000",
"TSdb640d"=>"d17ca2538ee2215b647c3466d4b06da7ec33c7a21dc7217953d3ffe7d4efbe89959deba9debace3f579e71c9e27e0b6b1ea2c663"
}
But I want to do the same with httparty. So my question is how do I view/access the response cookies from a GET request in httparty?

Since cookies are part of the response header, you can access them from the response header in httparty.
require 'httparty'
r = HTTParty.get('<REDACTED>')
r.headers
# => {"date"=>["Sat, 26 Jul 2014 19:34:09 GMT"], "cache-control"=>["no-cache", "no-store"], "pragma"=>["no-cache"], "expires"=>["Thu, 01 Jan 1970 00:00:00 GMT"], "content-length"=>["13987"], "set-cookie"=>["sessiontype=mpb; Secure", "aac=742A83A50A4C422C24D6F952C4BF6355; Expires=Sun, 26 Jul 2015 19:34:08 GMT; Path=/; Domain=<REDACTED>; Secure", "internetbankierenmi=1777182912.20480.0000; path=/", "TSdb640d=de34831032c17e8b66f123633372a9b341a9773368fccca553d402b1d4efbe89959deba9debace3fe0d47c86e27e0b6b1669bf05; Path=/"], "vary"=>["Accept-Encoding,User-Agent"], "content-type"=>["text/html;charset=ISO-8859-1"], "content-language"=>["en"], "connection"=>["close"], "strict-transport-security"=>["max-age=8640000"]}
r.headers['set-cookie']
# => "sessiontype=mpb; Secure, aac=742A83A50A4C422C24D6F952C4BF6355; Expires=Sun, 26 Jul 2015 19:34:08 GMT; Path=/; Domain=.ing.nl; Secure, internetbankierenmi=1777182912.20480.0000; path=/, TSdb640d=de34831032c17e8b66f123633372a9b341a9773368fccca553d402b1d4efbe89959deba9debace3fe0d47c86e27e0b6b1669bf05; Path=/"

Related

Laravel 7 Mail attachment with excel file using Maatwebsite\Excel 3.1

I want to attached excel file (xlsx format) in my email without saving file on the server.
I already have a working code for download.
Following is what i am trying to do and getting error.
Code
$excelFile = Excel::download(new OrderExport($this->order), 'Order-'. $this->order->id . '.xlsx');
$mail->attach($excelFile, ['as' => 'Order-'. $this->order->id . '.xlsx']);
Error
Unable to open file for reading [HTTP/1.0 200 OK
Cache-Control: public
Content-Disposition: attachment; filename=Order-4.xlsx
Date: Wed, 05 Aug 2020 13:55:24 GMT
Last-Modified: Wed, 05 Aug 2020 13:55:24 GMT]
I am using Laravel 7.x and Maatwebsite\Excel 3.1
I got it fixed with the following code
$excelFile = Excel::raw(new OrderExport($this->order), \Maatwebsite\Excel\Excel::XLSX);
$mail->attachData($excelFile, 'Order-'. $this->order->id . '.xlsx');

How do I set multiple cookies in a single Webrick response?

I use Webrick to test my HTTP client and I need to test how it gets and sets cookies.
Wikipedia provides an example of such response:
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
...
but if I do
server.mount_proc ?/ do |req, res|
res["set-cookie"] = %w{ 1=2 2=3 }
the whole array becomes a single cookie: "[\"1=2\", \"2=3\"]"
And then in WEBrick::HTTPResponse source code I see again the #header = Hash.new that probably means you can't repeat the header key.
Is it impossible?!
UPD:
This leaves me no hope:
https://github.com/rack/rack/issues/52#issuecomment-399629
https://github.com/rack/rack/blob/c859bbf7b53cb59df1837612a8c330dfb4147392/lib/rack/handler/webrick.rb#L98-L100
Another method should be used instead of res[...]=:
res.cookies.push WEBrick::Cookie.new("1", "2")
res.cookies.push WEBrick::Cookie.new("3", "4")
res.cookies.push WEBrick::Cookie.new("1", "5")

Square Connect not paginating correctly for items

I'm trying to pull all the shop items from Square Connect API, and the pagination seems to be broken. Here is the request I'm making:
$ http https://connect.squareup.com/v1/{location id}/items 'Authorization: Bearer XXXXXXXXXXXX'
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Link
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Tue, 29 Nov 2016 09:25:50 GMT
ETag: "-307839789"
Keep-Alive: timeout=60
Strict-Transport-Security: max-age=631152000
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Frame-Options: DENY
X-Request-Id: ed/QSsnKQaeuhjoT4K/R
X-Response-Time: 529ms
X-XSS-Protection: 1; mode=block
transfer-encoding: chunked
[
...
]
Critically, the Link header is missing. The documentation here https://docs.connect.squareup.com/api/connect/v1/#pagination describes pagination, and it seems like the header should be present when there are more than 10 results (which there are).
Am I doing something wrong?
I think you are mixing up items and variations.
The response you get from the list items endpoints will give you each of your unique items (in your case ~140), each of those item objects will include additional information about their variations. If you expect to have more items you might actually be counting each variation as a different item.

redirect to magento admin module from payapl

i have create a custom module for pay vendor's commission in magento admin. I am using paypal form with return url hostname/magento/index.php/vender/adminhtml_commision/pay/id/4/key/6qaGSxQ1ICrEtZXkVCw .
After success payment page is redirecting to magento admin dashboard while it should be redirect to my module page.
page is redirecting to my custom module page with status 302 and open magento dashboard.
The response header of the return url :
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Length 0
Content-Type text/html; charset=UTF-8
Date Thu, 15 May 2014 13:28:22 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=5, max=100
Location http://localhost/topplefiable/index.php/admin/dashboard/
Pragma no-cache
Server Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19
Set-Cookie adminhtml=foitk9bk5p7qd25sh9ead2c9e7; expires=Thu, 15-May-2014 14:28:25 GMT; path=/topplefiable; domain=localhost; httponly
X-Powered-By PHP/5.4.19
Request Headersview source
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Cookie store=s_1396871408storeview; adminhtml=foitk9bk5p7qd25sh9ead2c9e7; __ar_v4=%7C44OQLIKYJZGCJOP7YJWKBT%3A20140326%3A1%7CU4JSAS7TBVBWZGNKUMAMLP%3A20140326%3A1%7CWULQ7VIZHNEFTE7AHVGV7R%3A20140326%3A1; __zlcmid=OhdjUktCqwpH3c
Host localhost
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0
Request Headers From Upload Stream
Content-Length 1037
Content-Type application/x-www-form-urlencoded
Post response :
address_city WESLEY CHAPEL
address_country United States
address_country_code US
address_name RAYOMOND CHINOY
address_state FL
address_status confirmed
address_street 30310 HATZ WAY
address_zip 33543
auth AVkSV2ZSf5ipfxTbeKzKz86hJLe00dVdfxCNrqCuR2pWDjbyC6eIPYoZM3ibYe85vdBQXvoikxWM96Fsdwls8oQ
business stripa_1307688220_biz#domain.com
charset windows-1252
custom
first_name skumar
handling_amount 0.00
item_name
item_number
last_name kumar
mc_currency USD
mc_fee 0.20
mc_gross 0.20
notify_version 3.8
payer_email asah_1314106743_per#domain.com
payer_id Z95WWBMAGSL6Y
payer_status verified
payment_date 06:27:47 May 15, 2014 PDT
payment_fee 0.20
payment_gross 0.20
payment_status Completed
payment_type instant
protection_eligibility Eligible
quantity 1
receiver_email stripa_1307688220_biz#domain.com
receiver_id SNQXFDAY5XY4G
residence_country US
shipping 0.00
tax 0.00
test_ipn 1
transaction_subject
txn_id 3T8615219R228771W
txn_type web_accept
verify_sign A5aQCVrF8.8eOdu1dA6dqFof.9f4AfUbaoQLdRI9ETV8EbisVo3-1RdB
Please suggest me where i am wrong.
I found the solution after debugging errors, There was magento secrete key problem.
Magnto creates a key for each url, when we are passing "key" to paypal request it does not return "key" parameter.
Solution : Rename "key" to "magentokey" in paypal response, after success payment get "magentokey" and save paypal response in your database record. Then redirect to your custom form with "magentokey".

Why I'm getting a 500 server response in Google Webmaster Tools?

I'm trying to figure out why my web isn't getting crawled by the Google Spider, and when I do a test about the response of the site I see that I'm getting a 500 server response BUT my website is actually working.
My site is http://lacasadelilihostal.com/ and was made in Laravel.
I see another question when said that the problem could be by a JavaScript error but I don't see anyone in my web; and also I changed the permissions of the public folder to 775 but didn't work either.
This is the exact header response of your homepage. I'm taking a little time to digest this information and will come back. In the meantime others can consider this info too:
HTTP/1.1 200 OK
Date: Thu, 15 Aug 2013 17:35:33 GMT
Server: Apache
X-Powered-By: PHP/5.3.26
Cache-Control: no-cache
Set-Cookie: laravel_session=76c6f66056ff1828be5ad677b87f9690; expires=Thu, 15-Aug-2013 19:35:33 GMT; path=/; HttpOnly
Set-Cookie: laravel_session=76c6f66056ff1828be5ad677b87f9690; expires=Thu, 15-Aug-2013 19:35:34 GMT; path=/; httponly
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
I check my logs and found that i'm getting the error "'Uninitialized string offset: " in this line:
`$langcode = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '';
$langcode = (!empty($langcode)) ? explode(";", $langcode) : $langcode;
$langcode = (!empty($langcode['0'])) ? explode(",", $langcode['0']) : $langcode;
$langcode = (!empty($langcode['0'])) ? explode("-", $langcode['0']) : $langcode;
$langcode = strtolower($langcode[0]);` `
This only happened with crawlers... I remove the last line.

Resources