【发布时间】:2019-05-31 14:52:24
【问题描述】:
这是我的代码,我想在 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"}
]
}
}
}
而且它有效。
有人可以帮助我吗?我应该如何处理我的代码? ._. 之前谢谢你
【问题讨论】:
-
您在请求正文中使用了
connectionParameter而不是connectionParameters。 -
你可能需要检查你是否有正确的参数并且你做对了。
-
如果有请添加来自服务器的错误响应。它返回 500 错误,但看起来消息已被截断。
-
我已经检查了参数.. 但它仍然是errorr Erorr 位于
GuzzleHttp \ Exception \ ServerException (500)是不是大嘴有问题??谢谢你之前 -
错误 500 表示服务器拒绝您的请求。检查服务器的日志文件以确定原因。它可能能够提供正在发生的事情的提示。
标签: php json laravel guzzle geoserver