Я отправил свой класс Android с помощью "модифицированной библиотеки" (например, alamofire), и сервер может проанализировать его успех
но когда я использую "alamofire", сервер не может найти мои параметры, и я получаю ноль
Я думаю, это потому, что я отправил Body в Java, а в Swift я отправляю параметры, и это не похоже на тело
пример Android
Класс:
public class Car implements Serializable {
@SerializedName("strMobileNumber") //<--- serialize
private String strMobileNumber= "";
@SerializedName("strOfficialIMEI")
private String strOfficialIMEI= "";
// ... geter and setter...
конечная точка дооснащения:
@POST("/Rest/Login") // <== post
Call<Car> getLogin(@Body Car car); //// **<=== @BODY**
Запрос:
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
}
});
}
----------------------------------------------- -----------------------
Я пробую это для alamofire, но сервер не может разобрать мои параметры:
мой класс:
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
}
}
swift 4.2
alamofire 4.7