2016-04-02 17 views
0

Web tarayıcısından istekte bulunduğumda aynı CSV çıktısını üreten iki HTTP isteğim var. Her iki isteğin de URL parametrelerinin ilk bölümünü aynı oldukları için ihmal ettim.Olası URL'yi kodlama sorunları

Talebi A:

https://csv.business.tomtom.com/extern?...[other parameters]...&range_pattern=d-1 

Talebi B:

https://csv.business.tomtom.com/extern?...[other parameters]...&rangefrom_string=01/04/2016 00:00:01&rangeto_string=01/04/2016 23:59:59 

Ancak

"start_time","end_time","distance","triptime","operatingtime","standstill","tours","fuel_usage" 
"01/04/2016 09:27:39","01/04/2016 17:25:51","293121","15187","28692","2759","4","21.024" 

CSV çıkışı yapamıyor Sadece aşağıda görebileceğiniz son parametreyi değiştirir raylar uygulaması üzerinden istekler İstek B ile bir hata alıyorum. İstek A Tamam.

hatası:

CSV::MalformedCSVError 
... 
Illegal quoting in line 1. 
... 
@tripsSummary = CSV.parse(summaryResponse.to_s) 

Bu HTTP yanıtlar:

Tepki Bir

#<HTTP::Response/1.1 200 OK {"Access-Control-Allow-Origin"=>"*", "Access-Control-Allow-Methods"=>"GET", "Access-Control-Max-Age"=>"3600", "Access-Control-Allow-Headers"=>"Origin, X-Requested-With, Content-Type, Accept", "Content-Type"=>"text/comma-separated-values;charset=UTF-8", "Date"=>"Sat, 02 Apr 2016 19:16:04 GMT", "Connection"=>"close", "Transfer-Encoding"=>"chunked"}> 

B yanıtı

#<HTTP::Response/1.1 200 OK {"Connection"=>"close", "Cache-Control"=>"no-cache", "Content-Type"=>"text/html; charset=iso-8859-1", "Pragma"=>"no-cache", "Content-Length"=>"108"}> 

Sorular

  1. istek B hatalı biçimlendirilmiş midir? Neden tarayıcıda çalışıyor ve uygulamada çalışmıyor?
  2. Parametre rangefrom_string = 01/04/2016 00:00:01 içinde bir kodlama sorunu var mı?

cevap

1

Muhtemelen range_from ve range_to params %20 olarak boşluk kaçmak gerekir. Ruby'de bunu nasıl yapacağımı bilmiyorum ama this question iyi bir başlangıç ​​gibi görünüyor.

Tarayıcı muhtemelen URL'lerden otomatik olarak kaçar, bu yüzden doğru yanıtları burada alırsınız.