我正在使用Alamofire。因此,在响应中有状态码。我应该检查并处理所有可用的状态码情况还是应该采取什么措施。
switch response.response?.statusCode {
case 201:
print("created user")
case 400:
print("Bad request")
// ...........
default:
print(response.result.value)
}
答案 0 :(得分:0)
实际上不需要检查每个状态代码。我通常要做的是使用下面的模板检查请求是成功还是失败。
Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success:
if let httpURLResponse = response.response {
if httpURLResponse.statusCode == 200 {
// Success
} else {
// Response Unsuccessful
}
} else {
// Response Unsuccessful
}
case .failure:
// Request Failed
}
}
答案 1 :(得分:0)
您可以检查响应码是否在200-299(含)之间。这将告诉您请求已成功。其他任何代码都是失败。
如果要显示特定错误,请使用响应代码。这是标准response codes的列表。如果您可以控制API,请遵循标准代码。
答案 2 :(得分:0)
httpResponse = response as! HTTPURLResponse
print(httpResponse.statusCode) // this will shown the status code so you can easily get which type of error code is generate
if(httpResponse.statusCode == 200)
{
//Success
}
else
{
//Failure
}
您可以检查错误的类型
答案 3 :(得分:0)
请参阅以下内容以从import React from "react";
import ReactDOM from "react-dom";
import { from } from "rxjs";
import { reduce } from "rxjs/operators";
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
fromArray: [1, 2, 3, 4, 5]
};
}
componentDidMount() {
const observable$ = from(this.state.fromArray).pipe(
reduce((acc, value) => [...acc, value + 1], [])
);
this._subscription = observable$.subscribe(newFromArray => {
return this.setState({ fromArray: newFromArray });
});
}
componentWillUnmount() {
this._subscription.unsubscribe();
}
render() {
const { fromArray } = this.state;
return (
<ul>
{fromArray.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
获取状态代码,希望对您有所帮助。
HTTPURLResponse
答案 4 :(得分:0)
通常,您实际上不需要知道特定的错误代码,而只是请求是否成功。但是我可以看到一个开发人员工具或类似的东西,您可能想要显示实际的代码。
这样的事情会很好,实际上并不需要检查每种可能的状态代码的情况。
if let httpResponse = response as? HTTPURLResponse {
print("error \(httpResponse.statusCode)")
if httpResponse.statusCode == 200{
//Success
}else{
//Failed
statusCodeLabel.text = httpResponse.statusCode
}
}else {
//Failed
}