从PHP到Java的REST Post
我有一个RESTSpringJava服务,它可以完美地与Java客户机配合使用,但无法与PHP客户机配合使用。我是PHP新手,不知道我做错了什么 控制器:从PHP到Java的REST Post,java,php,spring,rest,Java,Php,Spring,Rest,我有一个RESTSpringJava服务,它可以完美地与Java客户机配合使用,但无法与PHP客户机配合使用。我是PHP新手,不知道我做错了什么 控制器: @RequestMapping(method = RequestMethod.POST, value = "/add_something") @ResponseBody public SomeDTO save_something(@Valid @RequestBody SomeDTO someDTO) { return someSe
@RequestMapping(method = RequestMethod.POST, value = "/add_something")
@ResponseBody
public SomeDTO save_something(@Valid @RequestBody SomeDTO someDTO) {
return someService.save(someDTO);
}
有些人:
@XmlRootElement(name = "someDTO")
public class SomeDTO {
private String name;
private CustomSome customSome;
...
}
@XmlRootElement(name = "customDTO")
public class CustomDTO {
private String name;
...
}
和PHP客户端调用:
$data = json_encode(array('someDTO' => array(
'name' => set_value('name'),
'customSome' => array('name' => set_value('custom_name'))
)
)
);
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data)
),
CURLOPT_POSTFIELDS => $data
));
// Send the request
$response = curl_exec($ch);
它没有达到控制器方法。实现了类似的无请求主体的控制器方法。但是一旦需要发送json,就不会发生任何事情。当您尝试PHP代码时,您会得到HTTP状态代码416或415吗?我得到错误的语法400。@user1335163试试这个:$ch=curl_init($url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);卷曲设置($ch,卷曲设置桩,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$data)$响应=curl_exec($ch);