任务是在php中构建一个REST客户端,发送和接收XML(我知道已经发布)。
如果我向REST-api发送内容,我会收到UnmarshallingException。
这是什么意思?
以下是我的代码的一部分:
public function createOrganisationUnit($kvcObject){
try{
$restclient = new RestClient(Environment::getConfiguration()['rest_url']);
$response = $restclient->execute(
RestClient::REQUEST_TYPE_POST,
'/rest/organisations/'.self::getOurID().'/organisationunits',
$kvcObject->xmlOrganisationUnit()
);
echo 'createOrg<br>';var_dump($response);echo'<br>';
if ($response['http_code'] == 201){ //created, return new ID
return substr($response['body'], strrpos($response['body'], "/"));
}elseif($response['http_code'] == 400){ //allready there, return found ID
return self::getOrganisationUnitsID($kvcObject->getOrganisationUnit()->getBsnr());
}else{ // error, return false
return false;
}
}catch (Exception $e){
print_r( $e->getMessage() ) . PHP_EOL;
}
}
其中$ kvcConnect-&gt; xmlOrganisationUnit()将xml作为字符串传递。 并且self :: getOurID()工作正常,将建议的ID作为Integer传递。
我不使用Symfony或任何其他框架。
祝你好运 约翰内斯
答案 0 :(得分:0)
try {
FileInputStream inputStream = new FileInputStream(new File("your file"));
AddRequest req = JAXB.unmarshal(inputStream, AddRequest.class);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
我发现,我的RestClass中的sprint(“%s”,$ post_data)是问题所在。