Java Rest服务XML请求语法不正确的格式

Java Rest服务XML请求语法不正确的格式,java,xml,web-services,rest,post,Java,Xml,Web Services,Rest,Post,我不熟悉web服务。我正在构建一个android应用程序,我正在尝试向web服务发送一个POST请求,但我不确定正确的格式是什么 这是其余部分中的POST方法: @POST @Override @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,MediaType.TEXT_XML}) public void create(Users entity) { super.create(entity); } 这些是

我不熟悉web服务。我正在构建一个android应用程序,我正在尝试向web服务发送一个POST请求,但我不确定正确的格式是什么

这是其余部分中的POST方法:

@POST
@Override
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,MediaType.TEXT_XML})
public void create(Users entity) {
    super.create(entity);
}
这些是atributes,是与我们的表相对应的类。我使用的是Oracle 11g数据库、Glassfish服务器4.1.1和Netbeans。我正在尝试从我的android应用程序调用PUT。有人能建议一种方法吗

public class Users implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "USER_ID")
private Short userId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "USERNAME")
private String username;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "PASSWORD")
private String password;

@Basic(optional = false)
@NotNull
@Size(min = 1, max = 40)
@Column(name = "EMAIL")
private String email;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "users")
private Profiles profiles;
我正在尝试用body调用POST方法:

`<users> 
<email> user@smth.com</email>
<userid>1</userid>
<password>pass</password>
<username>user</username>
</users>`
`
user@smth.com
1.
通过
用户
`

我应该如何称呼它?

您应该使用JAXB对对象进行序列化,或者为您想要发布的xml创建一个字符串表示。 要发送请求,请使用来自jaxrs的客户端api
或者,如果您使用的是spring RestTemplate,则可以使用名称-值对,如下所示:

List userdetails = new ArrayList();
userdetails.add(new BasicNameValuePair("email", "s@gmail.com"));
userdetails.add(new BasicNameValuePair("userid", "1"));
userdetails.add(new BasicNameValuePair("password", "5353$$"));
userdetails.add(new BasicNameValuePair("username", "shy"));
List userdetails=new ArrayList()
添加(新的BasicNameValuePair(“电子邮件”)s@gmail.com"));
添加(新的BasicNameValuePair(“userid”,“1”))
添加(新的BasicNameValuePair(“密码”,“5353$$”))
添加(新的BasicNameValuePair(“用户名”,“害羞”)
然后将其发布如下:

// Making HTTP request try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("your url goes here");
httpPost.setEntity(new UrlEncodedFormEntity(userdetails));//params added here
httpPost.setHeader("Content-type","application/x-www-form-urlencoded");
httpPost.setHeader("Accept", "application/json");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
Log.d("LINE",line);
sb.append(line + "\n");
} is.close();
json = sb.toString();
} catch (Exception e) { e.printStackTrace();
Log.e("Buffer Error", "Error converting result " + e.toString());
}
Log.d("RESULT",json);
//发出HTTP请求 试试{
DefaultHttpClient httpClient=新的DefaultHttpClient();
HttpPost HttpPost=新建HttpPost(“您的url位于此处”);
httpPost.setEntity(新的UrlEncodedFormEntity(userdetails));//此处添加了参数
httpPost.setHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setHeader(“接受”、“应用程序/json”);
HttpResponse HttpResponse=httpClient.execute(httpPost);
HttpEntity HttpEntity=httpResponse.getEntity();
InputStream=httpEntity.getContent();
}捕获(不支持的编码异常e){
e、 printStackTrace();
}catch(ClientProtocolException e){
e、 printStackTrace();
}捕获(IOE){
e、 printStackTrace();
}
试试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is),8);
StringBuilder sb=新建StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
Log.d(“行”,行);
sb.追加(行+“\n”);
} is.close();
json=sb.toString();
}捕获(例外e){ e、 printStackTrace();
Log.e(“缓冲区错误”,“错误转换结果”+e.toString());
}
Log.d(“结果”,json)
您的Web服务中的Post方法如下所示:

@POST @Consumes({MediaType.APPLICATION_XML,MediaType.TEXT_XML,MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) @Path("/insert") public Response insertRecord(Users users) { } @职位 @使用({MediaType.APPLICATION\uxml,MediaType.TEXT\uxml,MediaType.APPLICATION\ujson}) @产生({MediaType.APPLICATION\uxml,MediaType.APPLICATION\ujson}) @路径(“/insert”) 公共响应插入记录(用户){ }
这里的示例web服务实现:我尝试在POST方法MediaType.APPLICATION\u FORM\u URLENCODED\u TYPE中添加Consumes括号,但它不允许,因为它不能转换为字符串。