相关疑难解决方法(0)

如何从命令行使用JSON有效负载进行HTTP请求/调用?

从命令行执行JSON调用的最简单方法是什么?我有一个网站,它执行JSON调用以检索其他数据.

Google Chrome中显示的" 请求有效负载"如下所示:

{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }
Run Code Online (Sandbox Code Playgroud)

它是关于从(最好)linux命令行进行调用并检索JSON内容,而不是解析传入的JSON数据.

linux command-line json web-crawler

36
推荐指数
4
解决办法
8万
查看次数

如何在post变量中使用wget发布文件内容?

我有一个非常简单的PHP脚本:

<?
  $received:file = $_POST['file'];
  // do something with it
?>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用wget发布本地文件(unix)的内容.

wget --post-data='operation=upload' --post-file myfile 
Run Code Online (Sandbox Code Playgroud)

似乎发布但不附加到任何"字段".

我怎样才能做到这一点 ?

php wget

5
推荐指数
1
解决办法
2万
查看次数

如何通过 POST 正确请求地理服务器 WFS?

我有一个geoserver实例,其中包含我们的数据。通过 GET 请求可以正常工作并返回预期结果。但遗憾的是它不适用于 POST。

准确地说,这是对带有 GET 的 Capabilities 的请求,它返回一个有效的 GetCapabilities-Response:

http://myserver:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetCapabilities
Run Code Online (Sandbox Code Playgroud)

我用 wget 对此进行了测试,因此命令如下所示:

wget -O wfs 'http://myserver:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetCapabilities'
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用 POST 的 Capabilities-request。我创建一个包含以下内容的请求(命名请求)文件:

<GetCapabilities
 service="WFS"
 xmlns="http://www.opengis.net/wfs"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.opengis.net/wfs
 http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"/>
Run Code Online (Sandbox Code Playgroud)

我使用以下 wget 对 Geoserver 运行:

wget -O wfs --post-file=request 'http://myserver:8080/geoserver/wfs'
Run Code Online (Sandbox Code Playgroud)

但现在我得到一个 OWS-Exception:

<ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://moa:8080/geoserver/schemas/ows/1.1.0/owsAll.xsd">
  <ows:Exception exceptionCode="MissingParameterValue" locator="request">
    <ows:ExceptionText>Could not determine geoserver request from http request org.geoserver.platform.AdvancedDispatchFilter$AdvancedDispatchHttpRequest@1e5c2cc</ows:ExceptionText>
  </ows:Exception>
</ows:ExceptionReport>
Run Code Online (Sandbox Code Playgroud)

这看起来好像没有发送 POST-body 或者它被忽略了。我在这里做错了什么?


编辑:好的,我解决了这个问题。问题是 Geoserver 需要一个 Content-Type-Header 来发布 XML 文件。所以正确的请求如下所示:

wget -O wfs --header='Content-Type: text/xml' --post-file=request.xml 'http://myserver:8080/geoserver/wfs' …
Run Code Online (Sandbox Code Playgroud)

post geoserver web-feature-service

5
推荐指数
1
解决办法
9459
查看次数