Skip to content

Commit 8286dfb

Browse files
committed
feat: ethereum http client accept http headers
1 parent c7a0348 commit 8286dfb

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

web3swift/src/Client/HTTP/EthereumHttpClient.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EthereumHttpClient: BaseEthereumClient {
1515

1616
public init(
1717
url: URL,
18+
headers: [String: String]? = nil,
1819
sessionConfig: URLSessionConfiguration = URLSession.shared.configuration,
1920
logger: Logger? = nil,
2021
network: EthereumNetwork
@@ -25,6 +26,6 @@ public class EthereumHttpClient: BaseEthereumClient {
2526
self.networkQueue = networkQueue
2627

2728
let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: networkQueue)
28-
super.init(networkProvider: HttpNetworkProvider(session: session, url: url), url: url, logger: logger, network: network)
29+
super.init(networkProvider: HttpNetworkProvider(session: session, url: url, headers: headers), url: url, logger: logger, network: network)
2930
}
3031
}

web3swift/src/Client/NetworkProviders/HttpNetworkProvider.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ import Foundation
1212
public class HttpNetworkProvider: NetworkProviderProtocol {
1313
public let session: URLSession
1414
private let url: URL
15-
16-
public init(session: URLSession, url: URL) {
15+
private let headers: [String: String]
16+
17+
public init(session: URLSession, url: URL, headers: [String: String]? = nil) {
1718
self.session = session
1819
self.url = url
20+
self.headers = headers ?? [:]
1921
}
2022

2123
deinit {
@@ -33,6 +35,10 @@ public class HttpNetworkProvider: NetworkProviderProtocol {
3335
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
3436
request.addValue("application/json", forHTTPHeaderField: "Accept")
3537

38+
headers.forEach { key, value in
39+
request.addValue(value, forHTTPHeaderField: key)
40+
}
41+
3642
let id = 1
3743
let rpcRequest = JSONRPCRequest(jsonrpc: "2.0", method: method, params: params, id: id)
3844
guard let encoded = try? JSONEncoder().encode(rpcRequest) else {

0 commit comments

Comments
 (0)