在 RCurl 中使用 getURL 将查询参数设置为 API
setting query params to API with getURL in RCurl
我正在尝试将 R 与 Hotwire Hotels 一起使用 API:
以下是原始请求:
getURL(http://api.hotwire.com/v1/deal/hotel?dest=chicago&apikey=##############&format=JSON&limit=50&startdate=08/27/2015&enddate=08/28/2015)
但是,当我尝试将“开始日期and ‘enddate
作为参数传递时(见下文),它似乎没有选择日期。
getURL ("http://api.hotwire.com/v1/deal/hotel?dest=chicago&apikey=##############&format=JSON&limit=50",
httpheader=list(startdate=c_in,enddate=c_out))
在此方面如有任何帮助,我们将不胜感激。
苏布拉
httpheader
参数用于传递headers,而不是查询参数
使用 RCurl::getForm
getForm("http://httpbin.org/get", .params = c(q = "ham"))
或使用httr::GET
GET("http://httpbin.org/get", query = list(q = "ham"))
你真的应该尝试切换到 httr
,因为它使所有网络调用更清晰(API 文档说日期参数进入查询部分):
library(httr)
c_in <- '08/02/2015'
c_out <- '08/05/2015'
hotwire_api_url <- "http://api.hotwire.com/v1/deal/hotel"
res <- GET(hotwire_api_url,
query=list(dest="chicago",
apikey="########",
format="JSON",
limit=50,
startdate=c_in,
enddate=c_out))
# since return val is "text/x-json"
recs <- jsonlite::fromJSON(content(res, as="text"))
head(recs$Result)
## FoundDate CurrencyCode NightDuration EndDate
## 1 2015-08-01T23:38:48-07:00 USD 3.0 08/05/2015
## 2 2015-08-01T23:38:04-07:00 USD 3.0 08/05/2015
## 3 2015-08-01T23:38:47-07:00 USD 3.0 08/05/2015
## 4 2015-08-01T23:38:48-07:00 USD 3.0 08/05/2015
## 5 2015-08-01T23:38:36-07:00 USD 3.0 08/05/2015
## 6 2015-08-01T23:38:18-07:00 USD 3.0 08/05/2015
## Headline IsWeekendStay Price StartDate
## 1 Naperville 5 Star Hotel, 3/night false 143.0 08/02/2015
## 2 Northbrook 4 Star Hotel, /night false 67.0 08/02/2015
## 3 Chicago 4.5 Star Hotel, 8/night false 208.0 08/02/2015
## 4 Schiller Park 4 Star Hotel, 0/night false 140.0 08/02/2015
## 5 Chicago 4.5 Star Hotel, 2/night false 142.0 08/02/2015
## 6 Naperville 4 Star Hotel, /night false 98.0 08/02/2015
## Url
## 1 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjE4NTAzOjE0MDUwOjUuMDoxNDMuMDpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 2 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjM1MTEwOjg3NTQ3OjQuMDo2Ny4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 3 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjQ4Njk6ODc1NDU6NC41OjIwOC4wMDAwMjpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 4 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjM1MTI3Ojg5ODg5OjQuMDoxNDAuMDpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 5 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjQ4Njk6ODc5NTE6NC41OjE0Mi4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 6 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjE4NTAzOjE0MDUwOjQuMDo5OC4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## City CountryCode NeighborhoodLatitude NeighborhoodLongitude
## 1 Naperville US 41.8008 -88.1328
## 2 Northbrook US 42.1138 -87.8601
## 3 Chicago US 41.8989 -87.6243
## 4 Schiller Park US 41.9334 -87.9029
## 5 Chicago US 41.8549 -87.6221
## 6 Naperville US 41.8008 -88.1328
## Neighborhood StarRating StateCode
## 1 Lisle - Naperville 5.0 IL
## 2 Northbrook - Glenview - Mt. Prospect 4.0 IL
## 3 Magnificent Mile North - Water Tower 4.5 IL
## 4 O'Hare Intl Airport ORD South 4.0 IL
## 5 McCormick Place - South Loop - Soldier Field 4.5 IL
## 6 Lisle - Naperville 4.0 IL
我正在尝试将 R 与 Hotwire Hotels 一起使用 API: 以下是原始请求:
getURL(http://api.hotwire.com/v1/deal/hotel?dest=chicago&apikey=##############&format=JSON&limit=50&startdate=08/27/2015&enddate=08/28/2015)
但是,当我尝试将“开始日期and ‘enddate
作为参数传递时(见下文),它似乎没有选择日期。
getURL ("http://api.hotwire.com/v1/deal/hotel?dest=chicago&apikey=##############&format=JSON&limit=50",
httpheader=list(startdate=c_in,enddate=c_out))
在此方面如有任何帮助,我们将不胜感激。
苏布拉
httpheader
参数用于传递headers,而不是查询参数
使用 RCurl::getForm
getForm("http://httpbin.org/get", .params = c(q = "ham"))
或使用httr::GET
GET("http://httpbin.org/get", query = list(q = "ham"))
你真的应该尝试切换到 httr
,因为它使所有网络调用更清晰(API 文档说日期参数进入查询部分):
library(httr)
c_in <- '08/02/2015'
c_out <- '08/05/2015'
hotwire_api_url <- "http://api.hotwire.com/v1/deal/hotel"
res <- GET(hotwire_api_url,
query=list(dest="chicago",
apikey="########",
format="JSON",
limit=50,
startdate=c_in,
enddate=c_out))
# since return val is "text/x-json"
recs <- jsonlite::fromJSON(content(res, as="text"))
head(recs$Result)
## FoundDate CurrencyCode NightDuration EndDate
## 1 2015-08-01T23:38:48-07:00 USD 3.0 08/05/2015
## 2 2015-08-01T23:38:04-07:00 USD 3.0 08/05/2015
## 3 2015-08-01T23:38:47-07:00 USD 3.0 08/05/2015
## 4 2015-08-01T23:38:48-07:00 USD 3.0 08/05/2015
## 5 2015-08-01T23:38:36-07:00 USD 3.0 08/05/2015
## 6 2015-08-01T23:38:18-07:00 USD 3.0 08/05/2015
## Headline IsWeekendStay Price StartDate
## 1 Naperville 5 Star Hotel, 3/night false 143.0 08/02/2015
## 2 Northbrook 4 Star Hotel, /night false 67.0 08/02/2015
## 3 Chicago 4.5 Star Hotel, 8/night false 208.0 08/02/2015
## 4 Schiller Park 4 Star Hotel, 0/night false 140.0 08/02/2015
## 5 Chicago 4.5 Star Hotel, 2/night false 142.0 08/02/2015
## 6 Naperville 4 Star Hotel, /night false 98.0 08/02/2015
## Url
## 1 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjE4NTAzOjE0MDUwOjUuMDoxNDMuMDpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 2 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjM1MTEwOjg3NTQ3OjQuMDo2Ny4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 3 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjQ4Njk6ODc1NDU6NC41OjIwOC4wMDAwMjpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 4 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjM1MTI3Ojg5ODg5OjQuMDoxNDAuMDpZOlk6WQ--&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 5 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjQ4Njk6ODc5NTE6NC41OjE0Mi4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## 6 http://www.hotwire.com/hotel/superPage.jsp?encDealHash=MTAwOjE4NTAzOjE0MDUwOjQuMDo5OC4wOlk6WTpZ&rs=20500&xid=x-103&wid=w-3&rid=r-69820702248&startDate=08/02/2015&endDate=08/05/2015&bid=B311402&sid=S298
## City CountryCode NeighborhoodLatitude NeighborhoodLongitude
## 1 Naperville US 41.8008 -88.1328
## 2 Northbrook US 42.1138 -87.8601
## 3 Chicago US 41.8989 -87.6243
## 4 Schiller Park US 41.9334 -87.9029
## 5 Chicago US 41.8549 -87.6221
## 6 Naperville US 41.8008 -88.1328
## Neighborhood StarRating StateCode
## 1 Lisle - Naperville 5.0 IL
## 2 Northbrook - Glenview - Mt. Prospect 4.0 IL
## 3 Magnificent Mile North - Water Tower 4.5 IL
## 4 O'Hare Intl Airport ORD South 4.0 IL
## 5 McCormick Place - South Loop - Soldier Field 4.5 IL
## 6 Lisle - Naperville 4.0 IL