这是我的代码,我想在Geoserver中新建一个商店
public function post_store(String $name) {
$client = new Client();
$res = $client->request('POST', 'http://localhost:8080/geoserver/rest/workspaces/' . $name . '/datastores', [
'auth' => ['admin', 'geoserver'],
'json' => [
'dataStore' => [
'name' => $name,
'connectionParameter' => [
'entry' => [
'@key' => 'host', '$' => 'localhost',
'@key' => 'port', '$' => 5432,
'@key' => 'database', '$' => 'nyc',
'@key' => 'user', '$' => 'shee',
'@key' => 'passwd', '$' => 'postgres',
'@key' => 'dbtype', '$' => 'postgis',
]
]
]
]
]);
}
结果为错误
Server error: `POST http://localhost:8080/geoserver/rest/workspaces/pertanian/datastores` resulted in a `500 Server Error` response: <html> <head> <meta http- equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Error 500
Server Error</title> (truncated...)
但是我已经尝试过使用JSON代码使用POSTMAN:
{
"dataStore": {
"name": "nyc",
"connectionParameters": {
"entry": [
{"@key":"host","$":"localhost"},
{"@key":"port","$":"5432"},
{"@key":"database","$":"nyc"},
{"@key":"user","$":"shee"},
{"@key":"passwd","$":"postgres"},
{"@key":"dbtype","$":"postgis"}
]
}
}
}
它有效。
有人可以帮助我吗?我应该如何处理我的代码? ._。 谢谢你
答案 0 :(得分:0)
尝试创建一个变量 $username=admin 和其他 $password=geoserver,然后在 auth 数组中使用这两个变量。这对我有用