diff --git a/include/opendht/http.h b/include/opendht/http.h
index bb70d2aeb71d791bf9b241ca569ffc2e199acea4..ca5f86aaf62aaacc1e771f0c69dcfe175f3bab90 100644
--- a/include/opendht/http.h
+++ b/include/opendht/http.h
@@ -140,7 +140,7 @@ public:
                                           std::vector<asio::ip::tcp::endpoint> endpoints)>;
 
     Resolver(asio::io_context& ctx, const std::string& url, std::shared_ptr<dht::Logger> logger = {});
-    Resolver(asio::io_context& ctx, const std::string& host, const std::string& service = "80",
+    Resolver(asio::io_context& ctx, const std::string& host, const std::string& service,
              const bool ssl = false, std::shared_ptr<dht::Logger> logger = {});
 
     // use already resolved endpoints with classes using this resolver
@@ -152,7 +152,6 @@ public:
     inline const Url& get_url() const {
         return url_;
     };
-    std::string get_service() const;
 
     void add_callback(ResolverCb cb);
 
@@ -191,11 +190,11 @@ public:
     };
     using OnStatusCb = std::function<void(unsigned int status_code)>;
     using OnDataCb = std::function<void(const char* at, size_t length)>;
-    using OnStateChangeCb = std::function<void(const State state, const Response response)>;
+    using OnStateChangeCb = std::function<void(State state, const Response& response)>;
 
     // resolves implicitly
     Request(asio::io_context& ctx, const std::string& url, std::shared_ptr<dht::Logger> logger = {});
-    Request(asio::io_context& ctx, const std::string& host, const std::string& service = "80",
+    Request(asio::io_context& ctx, const std::string& host, const std::string& service,
             const bool ssl = false, std::shared_ptr<dht::Logger> logger = {});
 
     // user defined resolver
diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp
index a984a5adcc75b77069bf7f0cf022c2c502441982..09faf115613ac37ed0b7fff23d2ad0dbbf04ae20 100644
--- a/src/dht_proxy_client.cpp
+++ b/src/dht_proxy_client.cpp
@@ -325,7 +325,7 @@ DhtProxyClient::get(const InfoHash& key, GetCallback cb, DoneCallback donecb, Va
             }
         });
         request->add_on_state_change_callback([this, reqid, opstate, donecb, key]
-                                              (const http::Request::State state, const http::Response response){
+                                              (http::Request::State state, const http::Response& response){
             if (state == http::Request::State::DONE){
                 if (response.status_code != 200){
                     if (logger_)
@@ -464,7 +464,7 @@ DhtProxyClient::doPut(const InfoHash& key, Sp<Value> val, DoneCallback cb, time_
             return 0;
         });
         request->add_on_state_change_callback([this, reqid, ok, cb, key]
-                                              (const http::Request::State state, const http::Response response){
+                                              (http::Request::State state, const http::Response& response){
             if (state == http::Request::State::DONE){
                 if (response.status_code != 200)
                     if (logger_)
@@ -658,7 +658,7 @@ DhtProxyClient::queryProxyInfo(std::shared_ptr<InfoState> infoState, const sa_fa
             }
         });
         request->add_on_state_change_callback([this, reqid, family, infoState]
-                                              (const http::Request::State state, const http::Response response){
+                                              (http::Request::State state, const http::Response& response){
             if (state == http::Request::State::DONE){
                 if (response.status_code != 200)
                     if (logger_)
@@ -948,7 +948,7 @@ DhtProxyClient::handleExpireListener(const asio::error_code &ec, const InfoHash&
                                        key.to_c_str(), status_code);
                 });
                 request->add_on_state_change_callback([this, reqid, key]
-                                                      (const http::Request::State state, const http::Response response){
+                                                      (http::Request::State state, const http::Response& response){
                     if (state == http::Request::State::DONE){
                         if (response.status_code != 200)
                             if (logger_)
@@ -1054,7 +1054,7 @@ DhtProxyClient::sendListen(const restinio::http_request_header_t header,
             }
         });
         request->add_on_state_change_callback([this, reqid]
-                                              (const http::Request::State state, const http::Response response){
+                                              (http::Request::State state, const http::Response& response){
             if (state == http::Request::State::DONE){
                 if (response.status_code != 200)
                     if (logger_)
diff --git a/src/http.cpp b/src/http.cpp
index 1224fa7f43d4004340d10c23f00de5d27945b289..cff3662dfbc6a3ddd0668970e21cae41d88f5f4a 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -19,7 +19,9 @@
 #include "http.h"
 #include "log_enable.h"
 #include "crypto.h"
+#include "base64.h"
 
+#include <asio.hpp>
 #include <restinio/impl/tls_socket.hpp>
 #include <http_parser.h>
 
@@ -367,12 +369,12 @@ Resolver::resolve(const std::string& host, const std::string& service)
             return;
         if (logger_){
             if (ec)
-                logger_->e("[http:client]  [resolver] error for %s:%s: %s",
+                logger_->e("[http:client] [resolver] error for %s:%s: %s",
                            host.c_str(), service.c_str(), ec.message().c_str());
             else {
                 for (auto it = endpoints.begin(); it != endpoints.end(); ++it){
                     asio::ip::tcp::endpoint endpoint = *it;
-                    logger_->d("[http:client]  [resolver] %s:%s endpoint (ipv%i): %s",
+                    logger_->d("[http:client] [resolver] %s:%s endpoint (ipv%i): %s",
                         host.c_str(), service.c_str(), endpoint.address().is_v6() ? 6 : 4,
                         endpoint.address().to_string().c_str());
                 }