问题描述
我使用Moya建立网络层。我已向Header添加承载访问权限,并在日志“未找到个人访问客户端。请创建一个”中显示我。
这是我的代码:
对于服务API
enum Service {
case addProperty(property_type_id:Int,property_category_id:Int,user_id:Int,property_name:String,address: String,description:
String,price:Int,city_id:Int,area_id:Int)
}
extension Service:targettype,AccesstokenAuthorizable {
var baseURL: URL {
return URL(string: Constant.Url.baseUrl)!
}
var path: String {
switch self {
case .addProperty(_,_,_):
return "/add"
}
}
var method:Moya.Method {
switch self {
case .addProperty(_,_):
return .post
}
}
var sampleData: Data {
switch self {
case .addProperty(_,_):
return "{'phone':'page'}".data(using: .utf8)!
}
}
var task: Task {
switch self {
case .addProperty(let property_type_id,let property_category_id,let user_id,let property_name,let address,let description,let price,let city_id,let area_id):
var params = [String:Any]()
params["property_type_id"] = "\(property_type_id)"
params["property_category_id"] = "\(property_category_id)"
params["user_id"] = "\(user_id)"
params["property_name"] = "\(property_name)"
params["address"] = "\(address)"
params["price"] = "\(price)"
params["city_id"] = "\(city_id)"
params["area_id"] = "\(area_id)"
var formData = [MultipartFormData]()
for (key,value) in params {
if let imgData = value as? Data {
formData.append(MultipartFormData(provider: .data(imgData),name: key,fileName: "testimage.jpg",mimeType: "image/jpeg"))
} else {
formData.append(MultipartFormData(provider: .data("\(value)".data(using: .utf8)!),name: key))
}
}
return .uploadMultipart(formData
}
}
var headers: [String : String]? {
switch self {
case .addProperty(_,_):
return ["Content-Type": "multipart/form-data","Authorization": "Bearer+\(Constant.accesstoken.token)"]
}
}
var authorizationType: AuthorizationType? {
switch self {
case .addProperty(_,_):
return .bearer
}
}
}
这是网络管理员:
protocol Networkable {
var provider: MoyaProvider<Service> { get }
func addProperty(property_type_id:Int,description:String,area_id:Int,completion:@escaping (Data?)->Void)
}
class NetworkManager:Networkable {
static let shared = NetworkManager()
private init() {}
var provider = MoyaProvider<Service>()
func addProperty(property_type_id: Int,property_category_id: Int,user_id: Int,property_name: String,description: String,price: Int,city_id: Int,area_id: Int,completion: @escaping (Data?) -> Void) {
provider.request(.addProperty(property_type_id: property_type_id,property_category_id: property_category_id,user_id: user_id,property_name: property_name,address: address,description: description,price: price,city_id: city_id,area_id: area_id)) { (result) in
self.requestCompletion(result: result) { (data) in
completion(data)
}
}
}
//MARK: For The Completion
func requestCompletion(result:Result<Moya.Response,MoyaError>,completion:@escaping (Data?)->Void){
switch result {
case let .success(response):
do {
completion(response.data)
} catch let err {
print(err.localizedDescription)
completion(nil)
}
case let .failure(error):
print("error is : \(error.errorDescription)")
completion(nil)
}
}
}
如何添加授权令牌,或者是否需要在标头.backend PHP laravel中添加任何内容。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)