Android 如何解决Okhttp中的日期格式异常?
当我尝试在postman中使用一些参数来访问PostAPI时,我得到了200 当我试图通过改型使用一些参数点击PostAPI时,我得到了417 异常:Android 如何解决Okhttp中的日期格式异常?,android,Android,当我尝试在postman中使用一些参数来访问PostAPI时,我得到了200 当我试图通过改型使用一些参数点击PostAPI时,我得到了417 异常:无效的日期时间格式:7错误:日期类型的输入语法无效:“null” 您必须添加日期对象,而不是字符串。此外,在改装生成器设置中,使用日期模式添加GsonconverterFactory: Retrofit.Builder() .addConverterFactory(gsonConverterFactory) gsonCo
无效的日期时间格式:7错误:日期类型的输入语法无效:“null”
您必须添加
日期
对象,而不是字符串
。此外,在改装生成器设置中,使用日期模式添加Gson
converterFactory
:
Retrofit.Builder()
.addConverterFactory(gsonConverterFactory)
gsonConverterFactory = GsonConverterFactory.create(GsonBuilder()
.setDateFormat(SERVER_DATE_PATTERN)
.serializeNulls()
.create())
然后像这样发布:
@POST("api.....")
Call<Response> validateRegistrationCredentials(@Body YourPostBodyModel body);
class YourPostBodyModel {
Date bithday;
......
}
@POST(“api…”)
调用validateRegistrationCredentials(@Body YourPostBodyModel Body);
将您的PostBodyModel分类{
日期:比特日;
......
}
@POST(“您的api站点”)
fun sendData(@QueryMap hashMap:Map):调用
为这个做一张地图
Hashmap<String,String> hashMap = HashMap<String, String>()
hashMap["sex_id"] = sexid
etc
Hashmap Hashmap=Hashmap()
hashMap[“sex_id”]=sexid
等
这样写日期
数据输入(“出生日期”,日期) 等等,不要去任何地方,让我试试。你应该在Android studio LogCat中看到你的帖子。你的发帖正确吗?使用人体模型?还有@Post注解?是的,我看到了。它运转正常。如果我使用JSONObject.NULL,它不会出现在正文中,417表示缺少必需的propertydate_of_birth,所以如果错误来自服务器而不是服务器,您可能只是使用了错误的日期格式,但我如何修复?在postman中,我传递了null,我得到了正确的响应为什么要使用两个hasmap只需使用一个具有不同值和键的hasmap,并向我展示您的postman如何发送数据API中的日期格式是什么?@Amitpandey{“body”:{“sex\u id”:null,“appointment\u statudid”:null,“mpi”:“appointmentfromdate”:“2020/02/28”,“任命日期”:“2020/02/28”,“保险类型”:null}@Vishalbh但我不知道你能不能用java/但一些值或Integer和stringthan使用jsonobject并转换成int和string并传递它的意思?它是说预期的BEGIN_对象,但在第1行第1列pathHashMap YourHashMap=new HashMap();yourHash.put(“message”,“message”);yourHash.put(“timestamp”,timestamp);yourHash.put(“count”,count);yourHash.put(“version”,version);
@POST("your api site")
fun sendData(@QueryMap hashMap: Map<String, String>): Call<ApiResponse<Any>>
Hashmap<String,String> hashMap = HashMap<String, String>()
hashMap["sex_id"] = sexid
etc
String dtStart = "2020/02/28";
Date date;
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
try {
date = format.parse(dtStart);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}