【问题标题】:java.net.URISyntaxException: Illegal character in path at index 75java.net.URISyntaxException:索引 75 处的路径中存在非法字符
【发布时间】:2016-11-02 13:01:22
【问题描述】:

我正在尝试通过 Apache REST 客户端从 java 发送 GET 请求并遇到了这个问题。

java.net.URISyntaxException:索引 75 处路径中的非法字符: http://torrento.sharepoint.com/_api/web/getfolderbyserverrelativeurl('/共享 java.net.URI$Parser.fail(URI.java:2848) 处的文件/测试')/文件 在 java.net.URI$Parser.checkChars(URI.java:3021) 在 java.net.URI$Parser.parseHierarchical(URI.java:3105) 在 java.net.URI$Parser.parse(URI.java:3053) 在 java.net.URI.(URI.java:588) 在 org.apache.http.client.utils.URIBuilder.(URIBuilder.java:82) 在 com.mstack.samples.sharepoint.SharepointApp.getAllFiles(SharepointApp.java:61) 在 com.mstack.samples.sharepoint.SharepointApp.main(SharepointApp.java:45)

代码 sn-p :-

            httpClient = HttpClientBuilder.create().build();
            uriBuilder = new URIBuilder(requestUrl);
            System.out.println(uriBuilder);
            httpGet = new HttpGet(uriBuilder.build());
            httpGet.addHeader(AUTHORIZATION, "Bearer " + TOKEN);
            httpGet.addHeader("accept", "application/json; odata=verbose");
            response = httpClient.execute(httpGet);

requestUrl 是 http://torrento.sharepoint.com/_api/web/getfolderbyserverrelativeurl('/Shared Documents/test')/files

我知道 Shared 和 Documents 之间的空间是问题所在。试图对其进行编码。但这也没有用。请帮忙

【问题讨论】:

  • 是:stackoverflow.com/a/724764/5655414 不是你想要的?
  • 我进行了相应的更改并遇到了另一个问题。你能说我应该如何更改代码以使其正常工作吗?
  • “尝试对其进行编码。但这也不起作用。” - 向我们展示您尝试了什么以及发生了什么。因为解决方案是对 URL 的path 部分进行编码......以正确的方式。

标签: java rest sharepoint apache-httpclient-4.x


【解决方案1】:

我通过简单地添加requestUrl.replaceAll(" ", "%20"); 获得了解决方案 但在其他特殊字符的情况下,仅此一项是行不通的。所以我们必须在发送请求之前对 url 进行编码。

干杯:)

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2013-06-27
    相关资源
    最近更新 更多