improve http_request()