首页 > 解决方案 > 如何快速访问 AWS Lambda 函数的回调响应?

问题描述

我有一个简单的,当他登录时AWS Lambda function返回用户的。id

if (event.email && password) 
        {
            connection.query("SELECT * FROM doctor_data WHERE doc_email = ?", [event.email], function(error, results, fields)
            
            {
                connection.release();

                if(results.length > 0)
                {
                    bcrypt.compare(password, results[0].password, function(err, ress)
                    {
                      if(!ress)
                        {

                        callback (null, "Incorrect Password");
                        }
                      else
                        {   
                            callback (null, results[0].doc_id);
                        }
                    });         
                }
                else
                {
                callback (null, "Incorrect Email");
                }
        
            });
        
        }
        
        else 
        
        {
            callback(null, "Please enter Email and Password!");
        }

现在在 Android (Java) 中,我们使用下面提到的逻辑来访问 id。我们直接将它存储在 String 变量中,它工作正常。

@Override
public void onResponse(Call call, Response response) throws IOException {

String responseMsg = response.body().string();
Log.e(TAG, msg: responseMsg+ " responseMsg");

iOS swift代码如下所述。

 func callingLoginAPI(login: LoginModel,completionHandler: @escaping (Bool, String) -> ()){
        let headers: HTTPHeaders = [
        .contentType("application/json")
        ]
        
        AF.request(doctor_login, method: .post, parameters: login, encoder: 
            JSONParameterEncoder.default, headers: headers).response{
            response in debugPrint(response)
            switch response.result{
            case.success(let data):
                let urlString = doctor_login
                guard let url = URL(string: urlString) else {return}
                                
                URLSession.shared.dataTask(with: url){ (data, response, err) in
                    guard let data = data else {return}
                    let dataAsString = String(data: data,encoding: .utf8)
                    print("this is", dataAsString)
                    do{
                     let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers)
                    print(json)
                    print("json")
                }
                    catch{
                            print(error.localizedDescription)
                            completionHandler(false, "Login not Done")
                            print("not done")
                        }
                }.resume()
                
                
    
                if response.response?.statusCode == 200
                {
                    
                    completionHandler(true, "Login Done")
                    print("done")
                }
                else{
                    completionHandler(false, "Please try again")
                    print("not done")
                }
                
               
            case.failure(let err):
                print("that")
                print(err.localizedDescription)
               completionHandler(false, "Try Again")
            }
        }

它给了我以下回应。它给了我在这种情况下id的用户,2但我不知道如何get/extractsave它。

在此处输入图像描述

谁能指导我如何get/extractsaveresponse这种body情况2下?

Android我们使用okhttp library来访问API而在iOS swift我们用于NSURLConnection library访问API.

标签: swiftxcodeamazon-web-servicesaws-lambdaaws-api-gateway

解决方案


推荐阅读