Summary
The oneio HTTP reader entry points return Err when asked to open known-good HTTP(S) resources, even though the same URLs return HTTP 200 via curl. This occurs with both:
OneIo::builder().build().get_http_reader_raw(url)
oneio::read_lines(url)
This makes these functions unsuitable for checking whether a remote URL exists or can be opened.
Reproduction steps
-
Verify that these URLs are reachable and return HTTP 200 with curl:
https://data.ris.ripe.net/rrc00/2026.07/bview.20260728.0000.gz
http://archive.routeviews.org/route-views2/bgpdata/2026.07/RIBS/rib.20260728.0000.bz2
-
Pass each URL to either of the following APIs:
OneIo::builder().build().get_http_reader_raw(url)
oneio::read_lines(url)
-
Observe that both reader functions return Err rather than opening the remote resource.
Expected behavior
For a reachable HTTP(S) URL that returns HTTP 200, the reader functions should return Ok and allow the response body to be streamed.
Actual behavior
Both get_http_reader_raw(url) and read_lines(url) return Err for the URLs above despite their successful HTTP responses.
Additional context
BgpkitParser::new(url) can successfully open and stream these same URLs. Since bgpkit-parser uses oneio internally, there appears to be a difference between the working parser path and the public oneio HTTP reader functions.
Summary
The oneio HTTP reader entry points return
Errwhen asked to open known-good HTTP(S) resources, even though the same URLs return HTTP 200 viacurl. This occurs with both:OneIo::builder().build().get_http_reader_raw(url)oneio::read_lines(url)This makes these functions unsuitable for checking whether a remote URL exists or can be opened.
Reproduction steps
Verify that these URLs are reachable and return HTTP 200 with
curl:https://data.ris.ripe.net/rrc00/2026.07/bview.20260728.0000.gzhttp://archive.routeviews.org/route-views2/bgpdata/2026.07/RIBS/rib.20260728.0000.bz2Pass each URL to either of the following APIs:
Observe that both reader functions return
Errrather than opening the remote resource.Expected behavior
For a reachable HTTP(S) URL that returns HTTP 200, the reader functions should return
Okand allow the response body to be streamed.Actual behavior
Both
get_http_reader_raw(url)andread_lines(url)returnErrfor the URLs above despite their successful HTTP responses.Additional context
BgpkitParser::new(url)can successfully open and stream these same URLs. Since bgpkit-parser uses oneio internally, there appears to be a difference between the working parser path and the public oneio HTTP reader functions.