【问题标题】:Convert cURL to HTTP request (Swift 3) using Alamofire使用 Alamofire 将 cURL 转换为 HTTP 请求(Swift 3)
【发布时间】:2017-06-10 05:18:54
【问题描述】:

我无法在贝宝中获取访问令牌,在此之前这是正确的方法吗?我有点困惑。 这是我真正需要转换的:

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H“接受: 应用程序/json" \
-H "接受语言:en_US" \
-u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \
-d "grant_type=client_credentials"

这是我用来转换它的 sn-p

 let parameters = ["password" : K_CLIENT_SECRET, "username" : K_CLIENTID_SANDBOX, "grant_type" : "client_credentials"]

 let str = "\(K_CLIENTID_SANDBOX):\(K_CLIENT_SECRET)"
 let utf8str = str.data(using: String.Encoding.utf8)
 //let basic_auth_token = utf8str?.base64EncodedStringWithOptions(NSData.Base64EncodingOptions(rawValue: 0))
 let basic_auth_token = utf8str?.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))

 let headers = ["Accept" : "application/json", "Authorization" :"Basic "+basic_auth_token!] 

 Alamofire.request("https://api.sandbox.paypal.com/v1/oauth2/token", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers )
                    .responseJSON { response in
                        print(response.request as Any)  // original URL request
                        print(response.response as Any) // URL response
                        print(response.result.value as Any)   // result of response serialization
                }

响应在这里: 打印时我得到了三件事:(但响应值为 nil)

可选(https://api.sandbox.paypal.com/v1/oauth2/token)

可选({ 网址: https://api.sandbox.paypal.com/v1/oauth2/token } { 状态码:415, 标题{ 连接=关闭; “内容长度”= 0; “内容类型”=“文本/纯文本;字符集=ISO-8859-1”; 日期 =“格林威治标准时间 2017 年 1 月 25 日星期三 06:00:37”; “Paypal-Debug-Id”=“6221061b57a0a,6221061b57a0a”; 服务器=阿帕奇; "Set-Cookie" = "X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dplatformapiserv%26TIME%3D88049752%26HTTP_X_PP_AZ_LOCATOR%3Ddcg12.slc; 过期=格林威治标准时间 2017 年 1 月 25 日星期三 06:30:37;域=.paypal.com;路径=/; 安全的; HttpOnly, X-PP-SILOVER=;过期=周四,1970 年 1 月 1 日 00:00:01 格林威治标准时间”; 变化 = 授权; } })

没有

【问题讨论】:

    标签: xcode curl swift3


    【解决方案1】:

    我找到了解决方案,这里是:

    //GET ACCESS TOKEN
    let parameters = ["password" : K_CLIENT_SECRET, "username" : K_CLIENTID_SANDBOX, "grant_type":"client_credentials"]    
    
    let str = "\(K_CLIENTID_SANDBOX):\(K_CLIENT_SECRET)"
    let utf8str = str.data(using: String.Encoding.utf8)
    //let basic_auth_token = utf8str?.base64EncodedStringWithOptions(NSData.Base64EncodingOptions(rawValue:
    0))
    let basic_auth_token = utf8str?.base64EncodedString(options:
    NSData.Base64EncodingOptions(rawValue: 0))
    
    let headers = ["Accept" : "application/json", "Authorization" :"Basic "+basic_auth_token!]
    
    Alamofire.request("https://api.sandbox.paypal.com/v1/oauth2/token",
    method: .post, parameters: parameters, encoding:URLEncoding.default,
    headers: headers)
                        .responseJSON { response in
                            SwiftLoader.hide()
    
                            print(response.request as Any)  // original URL request
                            print(response.response as Any) // URL response
                            print(response.result.value as Any)   // result of response serialization
    
    
    
                    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多