У меня есть простой сервер отдыха конечной точки запуска Spring -Android, Xamarin, отдых - как передать объект в запросе
@RestController
@RequestMapping("/services")
@Transactional
public class CustomerSignInService {
@Autowired
private CustomerDAO customerDao;
@RequestMapping("/customer/signin")
public Customer customerSignIn(@RequestParam(value = "customer") Customer customer) {
//Some Code Here...
return customer;
}
}
Я пытаюсь передать объект клиента из моего Xamarin Android App с помощью этого метода -
public JsonValue send(String url, SmartJsonSerializer obj)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(obj.toJsonString());
}
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
return JsonObject.Load(stream);
}
}
}
Но я получаю Bad Request Exception (HTTP Error 400) и, очевидно, мой код на стороне сервера не запускается.
SmartJsonSerializer использует Json.NET сериализовать объект клиента в строку -
using System;
using Newtonsoft.Json;
namespace Shared
{
public class SmartJsonSerializer
{
public string toJson()
{
return JsonConvert.SerializeObject(this);
}
}
}
Любая помощь приветствуется, Thnx!
@RequestBody сделал трюк! Я смог немного поиграть с моим юнитом, пока не понял, спасибо! – baraka