Expedia API book.api.ean.com blank - php

Im looking to book a hotel with expedia api
https://book.api.ean.com/
but the url is always blank,
details here using rest/json
http://developer.ean.com/docs/hotels/version_3/book_reservation/
I've seen a few people experiencing the same problem and wondered if anyone knew what it was
https://book.api.ean.com/ean-services/rs/hotel/v3/res?cid=55505
&apiKey=xxx
&locale=en_US
&currencyCode=USD
&customerUserAgent=Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11
&customerIpAddress=127.0.0.1
&room1=1,3
&room1FirstName=TestBooking
&room1LastName=TestBooking
&room1BedTypeId=13
&room1SmokingPreference=NS
&room2=1,5
&room2FirstName=TestBooking
&room2LastName=TestBooking
&room2BedTypeId=13
&room2SmokingPreference=NS
&email=xxx
&firstName=TestBooking
&lastName=TestBooking
&homePhone=TestBooking
&workPhone=TestBooking
&creditCardType=CA
&creditCardNumber=5401999999999999
&creditCardIdentifier=123
&creditCardExpirationMonth=11
&creditCardExpirationYear=2012
&address1=travelnow
&city=Bellevue
&stateProvinceCode=WA
&countryCode=US
&postalCode=98004
&customerSessionId=0ABAA871-3127-A913-6642-A1F86D902E2B
&hotelId=211540
&arrivalDate=12/10/2012
&departureDate=12/12/2012
&supplierType=E
&rateKey=d03a8d29-1df2-4436-81d6-6b37eb4dcb78
&roomTypeCode=352749
&rateCode=1279169
&chargeableRate=803.04
including or excluding the minorrev doesn't seem to make much difference

Try urlencoding each querystring parameter:
customerUserAgent=Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11
arrivalDate=12/10/2012
The customerUserAgent url param should be url encoded:
customerUserAgent=Mozilla%2F5.0%20(Windows%20NT%206.1)%20AppleWebKit%2F535.11%20(KHTML%2C%20like%20Gecko)%20Chrome%2F17.0.963.83%20Safari%2F535.11
arrivalDate=12%2F10%2F2012
Take a look at PHP's urlencode for more information.
Also, be sure to remove the spaces between each querystring param, not sure if it was copy/paste issue or not.

Related

Chrome dev tools protocol. Message Emulate.setUserAgentOverride

I'm trying to substitute user agent via message Emulation.setUserAgentOverride.
I send the message with parameters:
[userAgentOverride] => Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
[acceptLanguage] => ru-RU
[platform] => Windows
And I got strange error, which I can't resolve:
[code] => -32602
[message] => Invalid parameters
[data] => Failed to deserialize params.userAgent - BINDINGS: mandatory field missing at position 175
The weirdness is, that user agent string length in this case is 110. And I'm stuck what does it mean. Any ideas would be appreciated.
I just mistook the name of parameter:
"userAgentOverride" has to be "userAgent".

Python HTTP Session RelayRides.com

I have researched many python post and sites to build a few other scripts that log into specific accounts of mine to scrape/parse data from a site. I have come across one I cannot figure out, relayrides.com. The site uses PHP and I have successfully logged into other php based pages using python, but it seems a JSESSIONID and rr_u_cid are set when the pages loads and passed with the POST from, see sample code used to login to other pages:
`payload = {
'action': '/login',
'email': 'user#gmail.com',
'password': 'pass1234'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'
}
with session() as c:
c.post('https://relayrides.com/login', data=payload)
response = c.get('https://relayrides.com/earnings', headers=headers)
print(response.text)`
I've tried pass the settings a cookie in the header, using CookiJar, etc. I am just new to python and web-scraping with python.
Thanks,
dickie

How Should send login information to a website using python

I'm trying to login into a website and send an sms with python. I'm using the request module, passing the user name and password. After I have passed that I am unable to judge whether the login has succeeded or not.
url='http://www.connectexpress.in'
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"}
s=requests.session() ; s.headers.update(headers)
r=s.get(url) ; soup=BeautifulSoup.BeautifulSoup(r.content)
VIEWSTATE=soup.find(id="__VIEWSTATE")['value']
#VIEWSTATEGENERATOR=soup.find(id="__VIEWSTATEGENERATOR")['value']
EVENTVALIDATION=soup.find(id="__EVENTVALIDATION")['value']
login_data={"__VIEWSTATE":VIEWSTATE,
"__EVENTVALIDATION":EVENTVALIDATION,
"txtUserName":usrNme,
"txtPassword":paswrd,
"submit":'Submit'}
r1=s.post(url, data=login_data)
This is the piece of code that I used and could any one give some ideas ?

How to get browser name in cakephp 3 request?

I need to get requesting browsers name in my web app.( for analytics )
In core php when I use $visitor_user_agent=$_SERVER['HTTP_USER_AGENT']it returns Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36 string when using with chrome.And then preg_match('/Chrome/i', $visitor_user_agent) can be used to know if its chrome or not.I am not sure if that was efficient way to find browser name or not.
I also found get_browser link but it is not giving browser name.
Is there a way in cakephp3 or core php to get browser name ?
This would return the user agent used for the request:
$this->request->header('User-Agent');
http://book.cakephp.org/3.0/en/controllers/request-response.html
Look into documentation of Request object.
You can get HTTP_USER_AGENT using env() method:
$this->request->env('HTTP_USER_AGENT');
You can also prepare custom detector:
$this->request->addDetector(
'chrome',
['env' => 'HTTP_USER_AGENT', 'pattern' => '/Chrome/i']
);
And then in controller just use is() method as follows:
if($this->request->is('chrome')) {
// do stuff for chrome
}

Codeigniter User Agent detect Opera browser as Chrome

I'm trying to show the browser that I used to open my site using Codeigniter User Agent Libraries. When I open with IE,Chrome,Firefox,and Safari, User agent return the right value. But when I open with Opera, it return "Chrome" value.
here is part of my code:
Controller
*** another code ***
$this->load->library('user_agent');
$data['browser'] = $this->agent->browser();
$this->load->view('agent',$data);
*** another code ***
View
Your browser is <span><?php echo $browser; ?></span>.
the result if I open with opera is this:
Your browser is Chrome.
My question is, why it return Chrome? How can I fix this problem?
Thanks.
It looks like the user agent string in opera (since version 15) is this:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100
You might need to extend the user_agent library to do a check to see if the user agent string contains OPR.
https://dev.opera.com/blog/opera-user-agent-strings-opera-15-and-beyond/

Categories