我试图用inetc::put
上传样式化图层描述符(名为.sld),以具有REST风格的端点本地的GeoServer实例。我得到一个错误,说我需要设置Content-type,尽管我是。NSIS inetc ::放,不能上传文件: “尝试设置Content-type头。”
inetc::put /silent /header "Content-type: application/vnd.ogc.sld+xml" "http://username:[email protected]:8080/geoserver/rest/styles/MyNewStyle" "$INSTDIR/MyNewStyle.sld"
Pop $0
DetailPrint "Uploading styled layer descriptor: $0"
这将返回一个HTTP 400(请求错误)。服务器日志有以下说:
ERROR [geoserver.rest] - Could not determine format. Try setting the Content-type header.
org.geoserver.rest.RestletException
at org.geoserver.rest.AbstractResource.getFormatPostOrPut(AbstractResource.java:173)
at org.geoserver.rest.ReflectiveResource.handlePost(ReflectiveResource.java:116)
at org.restlet.Finder.handle(Finder.java:296)
at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:37)
at org.restlet.Filter.doHandle(Filter.java:105)
at org.restlet.Filter.handle(Filter.java:134)
at org.restlet.Router.handle(Router.java:444)
at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:204)
at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:86)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
[...]
它并没有帮助,documentation为Inetc并不表明/header
是inetc::post
也不inetc::put
可用选项。不过,我证实,我可以使用/header
设置Content-类型inetc::post
请求中的GeoServer创建工作空间和风格。 inetc::put
有一些不同,它要么需要不同的语法,要么只是没有正确实现。
我还没有发现有人的执行inetc::put
其中它们设置Content-类型的请求的单个例子。我曾试图把/header
之前,之间和URL
和local_file
后。我可以使用Firefox插件“Poster”执行PUT,并使用cURL。但它不适用于Inetc。
我使用过可我在上面分享的链接的最新版本Inetc的。
你试过菲德勒/ Wireshark的,看看到底是哪头标INetC最终使用? – Anders 2014-12-07 00:12:17
使用Fiddler,我看到头“Content-Type:octet-stream”。它似乎忽略了我试图设置为内容类型标题的内容。 – 2014-12-07 09:20:57