Amazon web services 如何使用Amplify框架从AWS中的API获取http状态和详细响应?

Amazon web services 如何使用Amplify框架从AWS中的API获取http状态和详细响应?,amazon-web-services,aws-lambda,aws-api-gateway,aws-amplify,amplify-ios,Amazon Web Services,Aws Lambda,Aws Api Gateway,Aws Amplify,Amplify Ios,在我的AWS项目中,我使用Lambda和API网关创建了Web服务。 这些Web服务由我的iOS应用程序使用Amplify框架调用 在我的lambda函数中: 如果没有错误,我将返回如下内容: 返回{ 状态代码:200, 正文:JSON.stringify({ “示例\u键\u 1”:“示例\u值”, “示例键2”:123456789 }) }; 当出现错误时,我会返回如下内容: 返回{ 状态代码:400, 正文:JSON.stringify({ “自定义错误代码”:333333 })

在我的AWS项目中,我使用Lambda和API网关创建了Web服务。 这些Web服务由我的iOS应用程序使用Amplify框架调用

在我的lambda函数中:

  • 如果没有错误,我将返回如下内容:
返回{
状态代码:200,
正文:JSON.stringify({
“示例\u键\u 1”:“示例\u值”,
“示例键2”:123456789
})
};
  • 当出现错误时,我会返回如下内容:
返回{
状态代码:400,
正文:JSON.stringify({
“自定义错误代码”:333333
})
};
在我的iOS应用程序中,我通过如下操作调用API:

Amplify.API.post(请求:请求){结果为
切换结果
{
案例.成功(让数据):
打印(“成功:\(数据)”)
案例。失败(let错误):
打印(“错误:\(错误)”
}
}
现在,我需要从API的响应中获得以下信息:

  • 出现错误时的状态代码
  • 响应的主体,无论是否存在错误
换句话说,当我调用API时,我需要在我的iOS应用程序中获取lambda的每个
返回
的全部内容

据介绍,对于Javascript的Amplify框架来说,这似乎很容易实现,但我找不到iOS或Android的等效框架

使用Amplify框架如何实现这一点

谢谢

val body=JSONObject()
.put(“姓名”,“修剪草坪”)
.toString()
.toByteArray()文件
val request=RestOptions.builder()
.addPath(“/todo”)
.addBody(body)
.build()
Amplify.API.post(请求,
{响应->
如果(!response.code.issusccessful()){
Log.w(“标签”,“非200返回码”)
}否则{
val data=repsonse.data.asString()
Log.i(“Demo”,“OK!Data=$Data”)
}
},
{失败->
Log.e(“演示”,“服务器无响应”,失败)
}
)
let request=RESTRequest(路径:“/todo”,正文:“我的新todo”。数据(使用:.utf8))
Amplify.API.post(请求:请求){结果为
切换结果{
案例.成功(让数据):
让str=String(解码:data,as:UTF8.self)
打印(“成功\(str)”)
案例.失败(错误):
开关apiError{
case.httpStatusError(512;,let响应):
println(“\(response.statusCode)”)
其他:
println(“服务器无响应”)
}
}
}

在iOS项目中开发集成API网关时,我遇到了与您相同的问题。实际上,我为此提出了一个PR。不幸的是,他们关闭了该PR。但无论如何,我开始使用我自己的PR进行我的项目。该项目已上线2个月。我没有遇到任何问题


希望能有所帮助。

谢谢,但我不明白:对于Amplify iOS,如果出现错误400,我如何获得响应的主体?