swift 4-Alamofire和改装之间的差异(车身等级后)
我通过“改造库”(比如alamofire)发送了我的android类,服务器可以成功解析它 但当我使用“alamofire”时,服务器找不到我的参数,我得到了零 我想这是因为我用java发送Body,用swift发送参数,它不像Body android示例 类别:swift 4-Alamofire和改装之间的差异(车身等级后),swift,alamofire,Swift,Alamofire,我通过“改造库”(比如alamofire)发送了我的android类,服务器可以成功解析它 但当我使用“alamofire”时,服务器找不到我的参数,我得到了零 我想这是因为我用java发送Body,用swift发送参数,它不像Body android示例 类别: public class Car implements Serializable { @SerializedName("strMobileNumber") //<--- serialize private String str
public class Car implements Serializable {
@SerializedName("strMobileNumber") //<--- serialize
private String strMobileNumber= "";
@SerializedName("strOfficialIMEI")
private String strOfficialIMEI= "";
// ... geter and setter...
我的请求:
Alamofire.request(Values.connection.url("Login") , method: .post, parameters: params, encoding: URLEncoding.default, headers: ["Content-Type":"applocation/json"]).responseJSON { (response) in
switch response.result {
case .success(let json):
let dict = json as? [String: Any]
print(dict!["<KEY>"])
break
case .failure(let error):
print(error)
break
}
}
Alamofire.request(Values.connection.url(“Login”)、方法:.post、参数:params、编码:URLEncoding.default、头:[“Content Type”:“applocation/json”]).responseJSON{(response)in
开关响应。结果{
case.success(让json):
让dict=json为?[String:Any]
打印(dict![“”])
打破
案例。失败(let错误):
打印(错误)
打破
}
}
swift 4.2
alamofire 4.7我认为alamofire参数编码方法不正确您可能需要使用
URLEncoding.default
来使用JSONEncoding.default
我认为alamofire参数编码方法不正确您可能需要使用URLEncoding.default
来使用JSONEncoding.default
有2个在API调用中需要进行的更改:
- 将编码方法更改为
JSONEncoding.default
- 将标题值更改为
[“内容类型”:“应用程序/json”]
jsonecoding.default
标题的内容类型也有拼写错误。在API调用中需要进行两项更改:
- 将编码方法更改为
JSONEncoding.default
- 将标题值更改为
[“内容类型”:“应用程序/json”]
jsonecoding.default
标题的内容类型中也存在拼写错误。能否将整个响应打印为not let dict=json?[String:Any]print(dict![“”])您能否将整个响应打印为不允许dict=json的格式?[String:Any]打印(dict![“”])Do
let request=Alamofire.request(…);打印(“请求:\(请求)”
request.responseJSON{…}`然后您应该能够看到出了什么问题。参数放在哪里:主体、URL、标题,以及它们的格式(JSON编码等)。参数变量如何?Dolet request=Alamofire.request(…);打印(“请求:\(请求)”
request.responseJSON{…}`然后您应该能够看到出了什么问题。参数放在哪里:Body、url、header,以及它们的格式(JSON编码等)。param变量是什么?
private void postRequest(Car car) {
ApiService apiService = ApiClient.getClient().create(ApiService.class);
Call<Car> call = apiService.getLogin(car);
call.enqueue(new Callback<Car>() {
@Override
public void onResponse(Call<Car> call, Response<Car> response) {
stopLoading();
if (response.isSuccessful() && response.body() != null) {
switch (response.body().getResult()) {
case "1":
//do somrthing
break;
case "0":
//do somrthing
break;
default:
//do somrthing
break;
}
} else {
//do somrthing
}
}
@Override
public void onFailure(Call<Car> call, Throwable t) {
//do somrthing
}
});
}
class User: Codable {
private var strMobileNumber: String
private var strOfficialIMEI : String
init(strMobileNumber: String, strOfficialIMEI: String) {
self.strMobileNumber = strMobileNumber
self.strOfficialIMEI = strOfficialIMEI
}
func toParams () -> [String : Any] {
return [
"strMobileNumber" : self.strMobileNumber as Any,
"strOfficialIMEI" : self.strOfficialIMEI as Any
]
}
}
Alamofire.request(Values.connection.url("Login") , method: .post, parameters: params, encoding: URLEncoding.default, headers: ["Content-Type":"applocation/json"]).responseJSON { (response) in
switch response.result {
case .success(let json):
let dict = json as? [String: Any]
print(dict!["<KEY>"])
break
case .failure(let error):
print(error)
break
}
}