我一直在试图将我的android多形式数据绑定到播放框架表单绑定。但现在它似乎在抱怨日期格式绑定失败。任何帮助将非常感激!绑定Android Retrofit多部分数据到播放框架
我目前从Android应用程序发送了格式为 “YYYY-MM-DD”
的事情,如果曾尝试:
- 试图设置我自己日期格式在“application.conf”为 date.format = yyyy-MM-dd
试图手动设置java.util.Date格式。
val format = new java.text.SimpleDateFormat("yyyy-MM-dd") format.format(new java.util.Date())
这里是HTTP数据映射i。从Android的改型接收。我做了一个println的 “request.body.dataParts”
Map(stock -> List(11), productname -> List(pleasework), price -> List(11.0), userid -> List(test), brand -> List(nike), condition -> List(New (with defects)), date -> List("2015-09-20"), category -> List(Shoe), ean -> List(e0ee9583-fb10-43c1-80f3-c1725251adfc), sold -> List(true))
错误消息时播放框架抱怨:
Binding Failed
List(FormError(date,error.date,List()))
播放框架控制器代码:
val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
format.format(new java.util.Date())
val userForm = Form(
mapping(
"ean" -> text,
"date" -> of(dateFormat),
"sold" -> boolean,
"productname" -> text,
"userid" -> text,
"price" -> of(doubleFormat),
"stock" -> number,
"brand" -> text,
"category" -> text ,
"condition" -> text
)(Product.apply)(Product.unapply)
)
def multiuploaddata = Action(parse.multipartFormData) {
implicit request =>
userForm.bindFromRequest()(request).fold (
errFrm =>{
println("Binding Failed")
println(errFrm.errors)
},
userData => {
println("Success bind: " + userData.ean)
}
)
}
Ok("Receive MultiImage is okay!")
}
Android Retrofit接口代码:
@Multipart
@POST("/multiuploaddata")
void updateProductImageData(@Part("ean") String ean,
@Part("date") Date date,
@Part("sold") boolean sold,
@Part("productname") String productname,
@Part("userid") String userid,
@Part("price") double price,
@Part("stock") int stock,
@Part("brand") String brand,
@Part("category") String category,
@Part("condition") String condition
, @PartMap Map<String, TypedFile> Files, Callback<Photo> callback);
Android的碎片onClickListener:
mDoneButton = (Button) v.findViewById(R.id.done_button);
mDoneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Calling the retrofit Interface to send Data and Images over to server
service.updateProductImageData(mProduct.getId().toString(),
mProduct.getDate(), mProduct.isSold(), mProduct.getProductName(),
mProduct.getUserId(), mProduct.getPrice(), mProduct.getStock(), mProduct.getBrand(), mProduct.getCategory()[0],
mProduct.getCondition()[0], files, new retrofit.Callback<Photo>() {
@Override
public void success(Photo photo, Response response) {
Log.d(TAG, "SUCCESS UPLOAD MULTI IMAGE!!! " + response);
}
@Override
public void failure(RetrofitError error) {
}
});
试试这个https://github.com/square/retrofit/issues/291。此链接已帮助我解决日期问题。给出的链接只是提示。 – Tauqir
非常感谢链接!我会尝试:) – Jone45
传感数据在纪元 – Haito