question

Upvotes
Accepted
7 2 0 2

Automatic Decompression in HTTP request for Tick History Time and Sales report

Hi there!

I'm trying to download the Tick History Time and Sales report via R library httr.

Apparently, the GET method decompress it automatcally, what could be a real problem for large reports.

Is there a way to work around this?

I read in this page that if the request doesn't have the "Accept-Encoding" header, the response wouldn't have the "Content-Encoding" header and the client shouldn't decompress it, but that is not true, the "Content-Encoding" is still present.

So I don't know if the problem is with the R or with the API.

tick-history-rest-apirest-apirstreaming-pricescompression
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@leonardo.martins, considering your query, we moved it from the DSS to the TRTH forum, it seems more appropriate, and will help people discover it. AHS

1 Answer

· Write an Answer
Upvotes
Accepted
13.7k 26 8 12

@leonardo.martins,

The TRTH servers deliver compressed (or not) data depending on several things, as described under heading "Compression" in this page. For an On Demand Time and Sales extraction I believe it should always deliver compressed data, whatever you set in the GET header.

What does the response header contain ? I would expect it to contain this:

Content-Encoding: gzip Content-Type: text/plain

If that is the case, the content is compressed.

But some HTTP clients automatically decompress data when they receive compressed data (Postman does that) I guess you have run into that as well. You must disable httr’s content decoding, using "config(http_content_decoding=0)" in the GET call.

Here is a code snippet that does it:

TRTHRawExtractionResults <- function(token,jobid,Path,Overwrite = TRUE) {
  url <- paste0("https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/RawExtractionResults('",jobid,"')/$value")
  r <- httr::GET(url,add_headers(prefer = "respond-async",Authorization = token),config(http_content_decoding=0),write_disk(Path,Overwrite),progress())
  stop_for_status(r)
  return(r)
}

This is an extract from this article that describes an example of R code that does a time and sales extraction.

If that does not help, please post your code so we can have a look at it.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thank you very much! It its working perfectly now.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.