当前位置: 首页 > 知识库问答 >
问题:

Alamofire.post-api错误:Code=3840“字符1周围的值无效

庾勇军
2023-03-14

使用阿拉莫菲尔。post api,在postman中而不是在我的代码中提供数据的api。在代码下面发帖,请指导我在这里做错了什么:

// API calling method:

parameters = [
        "Address" : "" as AnyObject,
        "Name" :  "" as AnyObject,
        "ServiceID" : "" as AnyObject,
        "Rating" :  "" as AnyObject,
        "Price" :  "" as AnyObject
    ]

    let headers: Dictionary = [
        "" : ""
    ]

    print(parameters)

    ApiServices.requestPOSTURL(strURL, params: parameters, headers: headers, success:{

        (JSONResponse) -> Void in

        CommonMethodsClass.hideHUD(targetView: self.view)

        print(JSONResponse["message"])

        let strMsg = JSONResponse["message"].stringValue


        if (JSONResponse["status"].intValue == 1)
        {  

        }
        else
        {
            CommonMethodsClass.showAlertMessage(vc: self, titleStr: "Error!", messageStr: strMsg)
        }

    }) {
        (error) -> Void in
        print(error)

        CommonMethodsClass.hideHUD(targetView: self.view)
    }


// Api request method:
class func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){

    Alamofire.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default).responseJSON { (responseObject) -> Void in

        print(responseObject)

        if responseObject.result.isSuccess {
            let resJson = JSON(responseObject.result.value as Any)
            success(resJson)
        }
        if responseObject.result.isFailure {
            let error : Error = responseObject.result.error!
            failure(error)
        }
    }
}

错误:失败:responseSerializationFailed(alamo fire。AFError . responseserializationfailure reason . jsonserializationfailed(Error Domain = NSCocoaErrorDomain Code = 3840 "字符1周围的值无效。"UserInfo = { NSDebugDescription =字符1周围的值无效。}))

更新:解析的响应,可能也需要更改。

{
    "status": true,
    "message": "",
    "data": [
        {
            "SalonID": "1",
            "SalonName": "Affinity",
            "SalonEmail": "vay.chaan@th-rce.com",
            "SalonPhone": "9999888877",
            "SalonMobile": "9999888877",
            "SalonAddress": "C-28, Sec-58, India",
            "Latitude": "18.5806",
            "Longitude": "27.36273",
            "Image": null,
            "SalonImage": "",
            "TimeIntervalminutes": 20,
            "AverageRating": 4,
            "IsActive": 1
        },
        {
            "SalonID": "3",
            "SalonName": "Looks",
            "SalonEmail": "rad@th-rce.com",
            "SalonPhone": "99998828877",
            "SalonMobile": "99998388877",
            "SalonAddress": "GP Mall,India",
            "Latitude": "",
            "Longitude": "",
            "Image": null,
            "SalonImage": "",
            "TimeIntervalminutes": 30,
            "AverageRating": 5,
            "IsActive": 1
        }
    ]
}

共有3个答案

邓鸿雪
2023-03-14

把responseJSON改成responseString就可以了:)

  Alamofire.request("URL").responseString { response in
            print(response)

            if let json = response.result.value {
                print("JSON: \(json)")
            }
        }
钱展
2023-03-14

尝试responseString而不是response JSON,它将起作用

Alamofire.request("URL").responseString { response in
    print(response)

    if let json = response.result.value {
        print("JSON: \(json)")
    }
}
古棋
2023-03-14

responseJSON替换为response字符串

您需要将字符串转换为值。您可以更新您问题中的字符串吗?

您可以使用这个函数将响应字符串转换成JSON:

func convertToDictionary(text: String) -> [String: Any]? {
    if let data = text.data(using: .utf8) {
        do {
            return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
        } catch {
            print(error.localizedDescription)
        }
    }
    return nil
}

字符串:let str=“{\”name\“:\”James\“}”

USAGE:让判决=转换字典(文本:str)

 类似资料:
  • 我是iOS新手。我收到此错误: Error Domain=NSCoaErrorDomain Code=3840"字符0周围的值无效。"UserInfo={NSDebugDescription=字符0周围的值无效。}反序列化JSON时出错:Error Domain=NSCoaErrorDomain Code=3840"JSON文本没有以数组或对象开头,也没有设置允许片段的选项。"UserInfo={

  • 我收到此错误 错误域 = NSCocoa错误域代码 = 3840 “字符 746 周围的无效转义序列”。用户信息={NS诊断描述=字符 746 周围的无效转义序列。 下面是我解析JSON的代码: 使用此代码,我可以在其他API中获得响应对象。但在我的API中包含HTML标记。 我的问题是我得到的是JSON字符串,但它不是用JSON解析的。对于此API,我遇到错误 “错误域=NSCocoaError

  • 我正在尝试将图像上载到服务器,它工作正常,但偶尔我会在下面的代码中收到try语句错误。这就是错误所说的 致命错误:“try!”表达式意外引发错误:错误域 = NSCocoa错误域代码 = 3840 “字符 0 周围的无效值”。用户信息={NSDebug 说明= 字符 0.} 周围的无效值:文件/库/缓存/com.apple.xbs/源/swiftlang_PONDEROSA/swiftlang_P

  • 问题内容: 这是我对Alamofire的要求,对于某些要求它有时可以工作,但有时我会得到: 我已经读到这可能是由于无效的JSON引起的,但是响应是我在JSON验证程序中验证为有效的静态JSON字符串。它确实包含åö字符和一些HTML。 为什么有时会出现此错误? 问题答案: 我也面临同样的问题。我尝试而不是,它的工作。我猜这是与一起使用时的错误。

  • 我正在尝试使用xcode中的Switf 4使用rest Web服务,这是我的代码: 这是我在xcode控制台中的回答: Linea 50:Error Domain=NSCocoaErrorDomain Code=3840“字符0周围的值无效。”UserInfo={NSDebugDescription=字符0周围无效的值。}Linea 52:可选(“|{\”login\“:\”true\“}”) 这

  • 我正在学习JSON。我在从URL解析JSON时遇到问题。错误是“Error Domain=NSCocoaErrorDomain Code=3840”无值。“UserInfo={NSDebugDescription=无值。}” JSON是有效的-我已经检查过了。这是JSON的结构: 这是我的代码:导入UIKit }