当前位置: 首页 > 知识库问答 >
问题:

配置shapefiles的CURL命令的Apache HTTP客户端等效项

尉迟卓
2023-03-14

以下CURL命令的httpclient代码的等价物是什么

 curl -v -u username:password-XPUT -H "Content-type: text/plain" -d "E:/path_to_shapefile/shapefiles/" "http://172.16.17.86:9090/geoserver/rest/workspaces/IDIRA6/datastores/scenario2373/external.shp?configure=all"

CURL命令工作正常。我对httpclient的了解有限,但是,我尝试使用类似的代码,以下是我的尝试:

    import org.apache.http.client.fluent.*;

    public class QuickStart {
        public static void main(String[] args) throws Exception {  
            Executor executor = Executor.newInstance()
                    .auth("username", "password")
                    .authPreemptive("172.16.17.86:9090");
            // Line below does not compile
            String response = executor.execute(Request.Put("E:/path_to_shapefile/shapefiles/" 
     "http://172.16.17.86:9090/geoserver/rest/workspaces/IDIRA6/datastores/scenario2373/external.shp?configure=all"))                                
                     .returnResponse()
                     .toString();
             System.out.println(response);
        }
    }

上面的代码不能编译,因为我不知道如何在同一个请求中对两个URL进行编码,就像在CURL命令中那样。如能修复上述代码或采用新方法,将不胜感激。

提前谢了。

共有1个答案

能钟展
2023-03-14
import org.apache.http.client.fluent.*;
import org.apache.http.entity.ContentType;

public class QuickStart {
    public static void main(String[] args) throws Exception {  
        Executor executor = Executor.newInstance()
                .auth("admin", "geoserver")
                .authPreemptive("172.16.17.86:9090");       
        String response = executor.execute(Request.Put("http://172.16.17.86:9090/geoserver/rest/workspaces/IDIRA6/datastores/scenario2373/external.shp?configure=all")
                .bodyString("E:\\Tomcat\\apache-tomcat-8.5.37\\webapps\\geoserver\\data\\data\\IDIRA6\\scenario2373\\", ContentType.create("text/plain")))
                 .returnResponse()
                 .toString();
         System.out.println(response);
    }
}
 类似资料:
  • 我们有一个现有的Spring MVC应用程序(非Spring-boot应用程序),其中所有(或大部分)bean都是在XML中配置的。我们希望将其用作Spring Cloud配置客户机(我们有一个Spring Boot应用程序作为配置服务器)。 在这方面,在XML中用刷新范围配置bean(与@refreshScope注释相同)的XML等效性是什么。尝试将RefreshScope配置为bean,并使用

  • Http客户端,基于curl扩展实现。 $curl = new Swoole\Client\CURL(); $curl->get("http://www.qq.com/"); $curl->post("http://www.qq.com/", array( 'a' => 1234, 'b' => 5678, )); 支持get、post、download 3种方法 获取HTT

  • 主要内容:Redis IO多路复用,客户端最大连接数,常用命令,命令应用应用Redis 提供了一些操作客户端(client)的命令,比如查询所有已连接到服务器的客户端数量,控制客户端的连接状态(关闭或者挂起)等。通过客户命令我们可以轻松的实现对客户端的管理、控制。 Redis 服务器通过监听 TCP 端口的方式来接受客户端的连接。当一个连接建立后,Redis 会自动执行以下过程: 首先客户端 socket 被设置为非阻塞模式,这是因为 Redis 在网络事件处理上采用了非

  • 我读了很多文章来寻找java应用程序的最佳Rest客户机,最后我发现将Jersey与ApacheHTTP客户机4.5结合使用非常好,但在很多文章中,我发现现在改型是最好的(我没有提到Volley,因为在我的例子中,我不需要API支持缓存)。 对于java客户机应用程序,改型是否更好。还是对Android来说更好?为什么我以前没有找到这个比较。。它们无法比较? 我可以比较一下它们的性能、连接池、它们

  • 阅读了ApacheHTTP组件模块的连接管理文档,以及关于连接保持活动策略和连接退出策略的其他一些资源后,我感到非常困惑。 其中有很多形容词用来描述连接的状态,比如,,,和等。没有一个生命周期图来描述连接在这些状态之间的变化。 我的困惑主要来自以下情况。 我通过下面的代码片段设置了一个,它提供了5秒的。 与我交谈的服务器确实支持保持连接的活动状态。当我在一个批处理中异步执行大约200个请求后打印出

  • 客户端配置项设置示例 lookoutConfig.setProperty(LookoutConfig.LOOKOUT_AGENT_HOST_ADDRESS,"127.0.0.1"); 客户端配置项说明 配置项 对应 SpringBoot 配置项 默认配置值 说明 lookout.enable com.alipay.sofa.lookout.enable true 功能开关,默认是 true。如