使用 swift 在 Alamofire 中使用 CURL 命令

     2023-02-24     227

关键词:

【中文标题】使用 swift 在 Alamofire 中使用 CURL 命令【英文标题】:CURL command in Alamofire with swift 【发布时间】:2016-07-25 07:58:26 【问题描述】:

我有以下工作 curl 命令,我需要使用 Alamofire 在 Swift 中运行。

curl -k -i -d ' "user": "displayName":"My Test" ,"email":"test@xxtest.com","pwd":"test","roles":["stu"]' -H "Content-Type: application/json;charset=UTF-8" -u web:web -X POST 'https://test.herokuapp.com/xtest/auth/register'

我使用 Alamofire 在 Swift 中尝试了以下方法。我的印象是我 -u web:web 错误,但我无法确认。 控制台给了我以下我不明白的错误:

print response object
  nil
print error
  Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo=NSDebugDescription=Invalid value around character 0.)

有人能指出这里有什么问题吗?谢谢。

这是将 CURL 命令翻译成 Swift 的函数

func registerNewStudent(displayName: String, email: String, password: String, completionHandler: (AnyObject?, NSError?) -> ()) 

//Basic HTTP auth
    let user = "web"
    let password = "web"

    let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!
    let base64Credentials = credentialData.base64EncodedStringWithOptions([])

    let headers = ["Authorization": "Basic \(base64Credentials)"]

//example for a nested array query
  let parameters = [
        "user": [
            "displayName": displayName,
            "email": email,
            "pwd": password,
            "roles":["stu"]
        ]
    ]

    Alamofire.request(
        .POST,
        registerURL,
        headers: headers,
        parameters: parameters
        )
        .responseJSON  response in
            switch response.result 
            case .Success(let value):
                completionHandler(value, nil)
            case .Failure(let error):
                completionHandler(nil, error)
            
    

我是这样调用这个函数的:

func okButtonTapped(sender: UIButton) 

   let displayNameText = displayNameInput.text
    let emailText = emailInput.text
    let passwordText = passwordInput.text

    restApi.registerNewStudent(displayNameText!,emailInput: emailText!, passwordInput: passwordText!) responseObject, error in
        // use responseObject and error here

        print("print response object")
        print(responseObject)
        print("print error")
        print(error)
    

来自 CURL 调用的响应:

"result":"email":"trrrrrest@xxtest.com","display_name":"My Test","pwd":"test","fb_id":null,"roles":["stu"]

【问题讨论】:

【参考方案1】:

我可以从这里解决它:http://www.ceus-now.com/curl-d-to-alamofire/

在 JSON 响应之后添加以下行(不是之前)。

    .authenticate(user: "web", password: "web")

所以方法看起来像:

  Alamofire.request(
        .POST,
        registerURL,
        parameters: parameters
        )
        .responseJSON  response in
            switch response.result 
            case .Success(let value):
                completionHandler(value, nil)
            case .Failure(let error):
                completionHandler(nil, error)
            
    
    .authenticate(user: "web", password: "web")

【讨论】:

如何在swift中使用alamofire上传图库图片

】如何在swift中使用alamofire上传图库图片【英文标题】:howtouploadgalleryimageusingalamofireinswift【发布时间】:2018-07-1008:23:39【问题描述】:我想使用Alamofire快速上传来自imagePickerController的图像。我有两个函数,一个用于原始api调用... 查看详情

在 swift 中使用 alamofire 将参数作为原始数据发送

】在swift中使用alamofire将参数作为原始数据发送【英文标题】:Sendparamsasrawdatausingalamofireinswift【发布时间】:2020-05-2003:51:37【问题描述】:在swift中使用alamofire时,我将以下原始数据作为参数发送"customer":"firstname":"test","lastname":"u... 查看详情

Alamofire 在 swift 中使用正文发布请求

】Alamofire在swift中使用正文发布请求【英文标题】:Alamofirepostrequestwithbodyinswift【发布时间】:2019-02-2203:30:13【问题描述】:我正在尝试使用带有正文的alamofire发出发布请求,但我一直收到此错误代码“消息:发生错误。”我在ob... 查看详情

在 swift 中使用 Alamofire 取消 api 请求

】在swift中使用Alamofire取消api请求【英文标题】:TocancleanyapirequestUsingAlamofireinswift【发布时间】:2021-03-1118:04:18【问题描述】:我在swift中使用alamofire调用api。它是一个搜索api,当我在搜索栏中搜索任何文本时,我正在调用api。... 查看详情

使用 PHP 在 Swift 5 中使用 Alamofire 接收图像上传

】使用PHP在Swift5中使用Alamofire接收图像上传【英文标题】:ReceivingImageUploadinSwift5withAlamofireUsingPHP【发布时间】:2022-01-1213:44:14【问题描述】:我正在尝试使用Alamofire的多部分表单数据上传将图像从iOS应用程序发送到使用Swift的服... 查看详情

Swift 4:如何使用 Alamofire 在参数中发布文件?

】Swift4:如何使用Alamofire在参数中发布文件?【英文标题】:Swift4:HowtopostafileinparamswithAlamofire?【发布时间】:2018-10-3009:12:15【问题描述】:enterimagedescriptionhere图片是我如何将文件上传到后端API的Postman示例。我正在努力如何使用... 查看详情

在 Alamofire Swift 2.2 中使用 completionHandler

】在AlamofireSwift2.2中使用completionHandler【英文标题】:UsingcompletionHandlerinAlamofireSwift2.2【发布时间】:2016-08-0106:46:22【问题描述】:早上好,我第一次尝试在Swift2.2中将completionHandler与Alamofire一起使用,但我有点迷茫。在我的示例... 查看详情

在 swift 中使用 alamofire 发送 JSON 数组作为参数

】在swift中使用alamofire发送JSON数组作为参数【英文标题】:sendJSONarrayasparameterusingalamofireinswift【发布时间】:2017-07-2017:46:47【问题描述】:我正在尝试使用Alamofire将此数据(JSON格式)作为参数发送到swift3:["type":"confirm","refKey":"1... 查看详情

如何在 Swift 中使用 Alamofire 读取本地 JSON

】如何在Swift中使用Alamofire读取本地JSON【英文标题】:howtoreadlocalJSONwithAlamofireinSwift【发布时间】:2020-09-2416:29:17【问题描述】:我有一个本地json文件,我使用Bundle.main.path函数访问文件路径,但出现错误。服务classServicefileprivate... 查看详情

POST 请求在 swift3 中无法使用 alamofire

】POST请求在swift3中无法使用alamofire【英文标题】:POSTrequestnotworkinginswift3withalamofire【发布时间】:2016-12-3119:20:17【问题描述】:我正在使用Alamofire调用我的API。下面是代码。funcalamofirePost()letheaders:HTTPHeaders=["content-type":"x-www-form-u... 查看详情

使用 Alamofire 在 Swift 中进行摘要式身份验证

】使用Alamofire在Swift中进行摘要式身份验证【英文标题】:DigestAuthenticationinSwiftusingAlamofire【发布时间】:2014-09-1716:57:58【问题描述】:我已更改Alamofire示例代码以尝试支持摘要式身份验证,但无法使其正常工作。overridefuncprepareF... 查看详情

使用 Alamofire 在 Swift 中调用 API?

】使用Alamofire在Swift中调用API?【英文标题】:ApiCallinginSwiftwithAlamofire?【发布时间】:2017-12-2421:35:22【问题描述】:下面是我用于API调用的代码,这里有任何其他方法可以减少所有视图控制器的代码。我可以创建一个alamofireAPI调... 查看详情

在 swift 4.0 中使用 Alamofire/SwiftyJSON 时出错

】在swift4.0中使用Alamofire/SwiftyJSON时出错【英文标题】:ErrorusingAlamofire/SwiftyJSONinswift4.0【发布时间】:2017-10-1811:18:36【问题描述】:我在swift中编程时遇到错误,我无法修复它。错误:“letjson=JSON(data:dataFromNetworking)”行中的“使... 查看详情

如何让 Freddy 在 Swift 中使用 AlamoFire?

】如何让Freddy在Swift中使用AlamoFire?【英文标题】:HowtogetFreddyworkingwithAlamoFireinSwift?【发布时间】:2016-06-1212:51:48【问题描述】:我正在尝试使用AlamofirePOST请求对我的用户进行身份验证。我得到一个响应对象作为字典。我希望我... 查看详情

使用 Alamofire 在 Swift 中下载和解析 json

】使用Alamofire在Swift中下载和解析json【英文标题】:DownloadingandparsingjsoninSwiftwithAlamofire【发布时间】:2015-01-3003:22:14【问题描述】:对不起,我对此很陌生,它们可能是显而易见的事情,但我收到以下代码错误消息:“致命错误... 查看详情

使用 Alamofire 在 swift 3 中解析 Json

】使用Alamofire在swift3中解析Json【英文标题】:JsonParsinginswift3usingAlamofire【发布时间】:2017-01-0411:34:28【问题描述】:我在swift3工作。我是ios新手。我正在尝试解析json数据,例如MyjsonVlaueis:data=(Password="@1234";UserName="<null>";"___cl... 查看详情

如何使用 Alamofire 在 Swift 3 中解析 JSON?

】如何使用Alamofire在Swift3中解析JSON?【英文标题】:HowtoParseJSONinSwift3usingAlamofire?【发布时间】:2017-04-2110:29:59【问题描述】:我正在使用Swift3。直到现在我还没有真正使用过JSON。我正面临这个问题,我只能在query之前解析数据... 查看详情

如何使用 Swift 5 在 Xcode 10.2.1 中添加 alamofire

】如何使用Swift5在Xcode10.2.1中添加alamofire【英文标题】:HowaddalamofireinXcode10.2.1usingSwift5【发布时间】:2019-07-0807:48:42【问题描述】:我想在我的项目中使用Alamofire我曾尝试安装Podfile,但对要安装的Alamofire版本感到困惑。当我尝试... 查看详情