实现的请求方式:
- 1、GET请求
- 2、POST请求
- 3、RAW请求
- 4、FORM请求
使用示例:
1、GET请求
func GETRequest() {
let request: NNetworkRequest = NNetworkRequest()
request.host = "http://www.weather.com.cn/data/sk/101010100.html"
//request.host = "https://livetest.ofweek.com/api/web"
request.requestMethod = .GET
NetworkService.shared.fetch(with: request)
.catch { error -> AnyPublisher<WeatherModel, Error> in
// 如果发生错误,则不会往下走
Fail(error: error).eraseToAnyPublisher()
} .sink { completion in
switch completion {
case .failure(let error):
if let error = error as? NetworkError {
debugPrint(error.description)
} else {
debugPrint(error.localizedDescription)
}
default:
print(completion)
}
} receiveValue: { weatherModel in
print("成功")
}
.store(in: &cancellables)
}
2、POST请求
func POSTRequest() {
let request: NNetworkRequest = NNetworkRequest()
request.host = ""
request.methodName = "/login/memberlogin"
request.requestMethod = .POST
let params = ["account": "", "password": "123456"]
request.params = params
NetworkService.shared.fetch(with: request)
.catch { error -> AnyPublisher<UserInfoModel, Error> in
// 如果发生错误,则不会往下走
Fail(error: error).eraseToAnyPublisher()
} .sink { completion in
switch completion {
case .failure(let error):
if let error = error as? NetworkError {
debugPrint(error.description)
} else {
debugPrint(error.localizedDescription)
}
default:
print(completion)
}
} receiveValue: { userInfoModel in
print("成功")
}
.store(in: &cancellables)
}
3、RAW请求
func RAWRequest() {
let request: NNetworkRequest = NNetworkRequest()
request.host = ""
request.methodName = "/login/memberlogin"
request.requestMethod = .RAW
let params = ["account": "", "password": "123456"]
request.params = params
NetworkService.shared.fetch(with: request)
.catch { error -> AnyPublisher<UserInfoModel, Error> in
// 如果发生错误,则不会往下走
Fail(error: error).eraseToAnyPublisher()
} .sink { completion in
switch completion {
case .failure(let error):
if let error = error as? NetworkError {
debugPrint(error.description)
} else {
debugPrint(error.localizedDescription)
}
default:
print(completion)
}
} receiveValue: { userInfoModel in
print("成功")
}
.store(in: &cancellables)
}
4、FORM请求
func FORMRequest() {
let request: NFileNetworkRequest = NFileNetworkRequest()
request.host = ""
request.methodName = "/file/uploadfile2"
request.requestMethod = .FORM
let params = ["filetype": "0", "module": "msgchat"]
request.params = params
let fileData: NFileData = NFileData.init()
fileData.name = "file"
fileData.filename = "file.png"
fileData.contentType = "image/png"
guard let data = UIImage.init(named: "test")?.jpegData(compressionQuality: 1.0) else {
return
}
fileData.data = data
request.files = ["file": fileData]
NetworkService.shared.fetch(with: request)
.catch { error -> AnyPublisher<UserInfoModel, Error> in
// 如果发生错误,则不会往下走
Fail(error: error).eraseToAnyPublisher()
} .sink { completion in
switch completion {
case .failure(let error):
if let error = error as? NetworkError {
debugPrint(error.description)
} else {
debugPrint(error.localizedDescription)
}
default:
print(completion)
}
} receiveValue: { userInfoModel in
print("成功")
}
.store(in: &cancellables)
}
相关源码如下:
网友评论