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

如何使用HttpURLConnection设置HTTP请求移动?

柴深
2023-03-14

如何使用< code>HttpURLConnection设置HTTP请求方法MOVE?

使用< code>HttpURLConnection或依赖于该类的库,代码将引发异常< code >,其原因是:Java . net . protocol exception:Invalid HTTP method:MOVE 。所以我猜Java平台不支持< code>MOVE方法。

是否有针对此问题/限制的补丁或解决方法?解决方法可能是创建HTTP请求的另一个java库。

编辑:请注意,MOVE谓词支持WebDav HTTP扩展。还有一个补丁扩展,后来添加到协议中。

这里的参考是我们正在尝试实现的带有移动功能的SkyDrive API。

请注意,鲁比平台支持 MOVE 方法。我想知道为什么java不支持甚至不允许这些扩展。

共有3个答案

龚星洲
2023-03-14

我更喜欢在客户端使用Apache Http组件。它有一个自定义的网络实现,因此可以使用非标准的HTTP方法,如MOVE或PATCH:

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpUriRequest moveRequest = RequestBuilder
            .create("MOVE")
            .setUri("http://example.com")
            .build();        
CloseableHttpResponse response = httpclient.execute(moveRequest);

Maven坐标:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.2+</version>
</dependency>
党权
2023-03-14

如果服务器支持它,您可以尝试使用 X-HTTP 方法-替代:移动标头发出 POST 请求

廉志强
2023-03-14

是HttpURLConnection中的bug。如果您不想切换到不同的库,您可以尝试使用内省来覆盖该方法(是的,这就是Jersey所做的,参见http://java.net/jira/browse/JERSEY-639)

 类似资料:
  • 问题内容: 我不知道是否有可能,因为std lib没有说明有关当前使用的地址的任何信息: http://golang.org/pkg/net/http/ 我想做的是为该HTTP请求设置源地址,为什么?因为我不想将我的主要IP地址用于此类工作… 问题答案: 您可以在客户端传输中设置自定义拨号程序。

  • 我想使用RestTemplate来发出请求。我必须发送带有GET请求的请求有效载荷。是的-是的,我知道。所以我尝试了RestTemplate.Exchange,但它似乎无论如何都没有发送GET请求的有效负载。所以我进一步查看了文档和数字resttemplate.execute可能是我要找的...现在我来了。 对ClientHtTPrequest进行操作的代码的回调接口。允许操作请求头,并写入请求正

  • 问题内容: 我想知道是否可以将PUT,DELETE请求(实际上)发送java.net.HttpURLConnection到基于HTTP的URL。 我已经读了很多描述如何发送GET,POST,TRACE,OPTIONS请求的文章,但是我仍然没有找到成功执行PUT和DELETE请求的示例代码。 问题答案: 要执行HTTP PUT: 要执行HTTP删除:

  • 主要内容:本节引言:,1.HttpURLConnection的介绍,2.HttpURLConnection的使用步骤,3.HttpURLConnection使用示例,4.Cookie问题的处理,5.使用HttpURLConnection发送PUT请求,本节小结:本节引言: 前面两节我们学习的都是一些概念性的东西,Http的协议以及协议头的一些东东,而本节我们 就要堆码了,而本节学习的是Android为我们提供的Http请求方式之一:HttpURLConnection, 除了这种,还有一种还有一种

  • 问题内容: 是否可以为JDK stdlib设置套接字级别选项(如SO_KEEPALIVE)HttpUrlConnection?我试图找出一种获取HTTP请求的方法,该方法不会成为偶尔的“挂起”连接(似乎经常由于网络数据包丢失而发生)的受害者。一个更强大的HTTP客户端。我知道有这种setReadTimeout方法,但我正在尝试寻找一些方法来使TCP流恢复正常运行,而不是像读取超时那样中止它。或者至

  • 问题内容: 我在Go中做一个简单的http GET: 但是我找不到在doc中自定义请求标头的方法,谢谢 问题答案: 请求的字段是公共的。您可以这样做: