Till senaste kommentaren
Detta inlägg är gammalt och kan innehålla inaktuell information.

Webserver skickar ogiltig Content-Encoding vid GET request på Windows 10

Vi får underliga svar från er server när vi försöker göra anrop till https://www.trafiklab.se/api/resrobot-stolptidtabeller-2 från Windows OS. Exakt samma typ av request funkar av någon anledning fint på Linux.

Vi använder oss av curl via språket R (implementerat i paketet httr). Eftersom det först misstänktes att felet möjligen låg någonstans i paketet eller på vår sida, startades en issue på githubben för R:s curl-implementation. De svarade dock att det var webservern som skickade oss en ogiltig Content-Encoding, och att vi borde kontakta er för att åtgärda problemet på er sida. Er server skickar Content-Encoding: UTF-8, vilket tydligen inte är en giltig Encoding.

Issuen på github: https://github.com/jeroen/curl/issues/163#issuecomment-424661267

De bad oss referera er till: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding

för en referens av giltiga Content-Encodings. De gav också tips om möjliga sätt att lura er server att skicka rätt Content-Encoding. Vi ska testa dessa.

Kommentarer

  • Ska lägga till att vi får UTF-8 tillbaka som Content-Encoding på både Linux och Windows. Men skillnaden är att Linux inte verkar bry sig att Content-Encodingen är ogiltig.
  • Det som skiljer de båda är att Windowsversionen av default använder nyare libcurl-version:

    User-Agent: libcurl/7.59.0 r-curl/3.2 httr/1.3.1

    Medan linuxversionen av samma använder en äldre version. libcurl/7.47.0
  • Hej Faton,
    Vi måste undersöka ditt ärende lite mer. Återkommer så snart jag vet mer.

    Hälsningar
    Kenneth
    Team Trafiklab
  • Hej Faton,
    Vi har nu fått svar från leverantören och just i denna fråga finns ingen snabb fix på deras sida. Detta kommer att hanteras vid en framtida uppgradering av resrobot-apierna.

    Hälsningar
    Kenneth
    Team Trafiklab
  • Hejsan!

    Finns det någon ETA på denna? Stötte precis på exakt samma problem, jag kan inte parsa datan från API-anropet eftersom utf-8 inte är en giltig content-encoding.

    hälsningar
    Andreas
  • Hej!

    Samma problem här med Windows 10 och ett R skript.

    https://api.resrobot.se/v2/departureBoard?key=KEY&id=740007355&date=2019-08-08&format=json&time=00:01&maxJourneys=1000

    Error in curl::curl_fetch_memory(url, handle = handle) :
    Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.

    Finns det en lösning???

    Mvh
    Björn
  • Jag har skickat en pull request till http-libet jag använder för att ignorera content-encodings som är ogiltiga, det var min lösning tillsvidare 😀

    Känns dock väldigt relevant för ett api som trafiklab att inte skicka ogiltiga headers tillbaka.

    /Andreas
  • Smart! Är det en R routine? Testade olika metoder i R för att ignorera content encoding men utan succé....

    Björn
  • Jag kör ett python-lib som heter httpx (https://github.com/encode/httpx)
    Får se om dom gillar min lösning eller inte.

    Andreas
  • Hej
    Vi har åter lyft frågan hos vår leverantör.
    Som tidigare sagt är inte det här en snabb fix, utan kommer lösa sig vid uppgradering av resrobot-APIer

    Mvh Pia
    Team Trafiklab
  • 3 år senare..
  • Hej,

    Vi har tagit upp kontakt igen med leverantören och försöker få det här fixad, jag fattar inte heller varför de inte har fixad detta än.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Hoppas ni prioriterar frågan. Region Uppsala behöver tillgång till en fungerande API!
  • Hej Björn,

    Jag kan säga att problemet är löst i nästa version, och att vi håller på med utrullning av den uppdatering. Det finns dock vissa andra saker som vi vill att leverantören ska fixa först, för just nu så skulle den uppdatering försämra användarvanligheten av API:et. Vi har varit väldigt nära till att släppa uppdateringen några gånger, men vi har vid varje försök hittat nya fel hos leverantören.

    Nya version skulle kräva 4 olika API nycklar, något som vi inte kan nöja oss med.
    Nya versionen kommer vara väldigt likt den befintliga, bara vissa svar som kommer ha en annan "föräldrar" element. Vi försöker att driva fram detta, och så fort att du hör någonting om att en ny ResRobot version är tillgängligt så får du lita på att detta är fixad (tillsammans med några andra saker som inte har funkat bra i den befintliga version).

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Tack Bert! Finns det en tidsuppskattning?
  • Jag skulle nog säga mellan den 7e februari och den 23e mars, och den 23e mars är ett datum som står fast som "värsta fall".
    Bert på Trafiklab
  • Kul att ni fick den uppgraderade version på plats så snabbt! Testade den uppdaterade URL "https://api.resrobot.se/v2/trip?format=json&originId=740000001&destId=740000003&passlist=true&showPassingPoints=true&accessId=" plus ny nyckel och svaret är
    errorCode "API_PARAM"
    errorText "The required parameter 'key' is missing."

  • Hej Björn,

    I url:en har du "v2" där det ska vara "v2.1", vilket gör att du gör anropet till den gamla version. Om du fick URL:en från dokumentation får du säga till var du hittade den, då fixar jag det i så fall.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Tack! Felet i dokumentationen finns under Example call här https://www.trafiklab.se/api/trafiklab-apis/resrobot-v21/route-planner/

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.