2016-06-30 17 views
3

javaからApache RESTクライアント経由でGETリクエストを送信しようとしましたが、この問題が発生しました。java.net.URISyntaxException:インデックスのパスに不正な文字があります

java.net.URISyntaxException:インデックス75でのパスで不正な文字: java.net.URI $ Parser.failでhttp://torrento.sharepoint.com/_api/web/getfolderbyserverrelativeurl( '/共有 ドキュメント/テスト')/ファイル(URI.java:2848 ) at java.net.URI $ Parser.checkChars(URI.java:3021) java.net.URI $ Parser.parseHierarchical(URI.java:3105) java.net.URI $ Parser.parse(URI .java:3053)at java.net.URI(URI.java:588) org.apache.http.client.utils.URIBuilder(URIBuilder.java:82) com.mstack.samples.sharepoint .SharepointApp.getAllFiles(SharepointApp.java:61) at com.mstack.samples.sharepoint.SharepointApp.main(SharepointApp.java:45)

コードスニペット: -

  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

である私がスペースを知っています共有と文書の間の問題が問題です。それをエンコードしようとしました。しかしそれも機能しませんでした。助けてください

+0

:http://stackoverflow.com/a/724764/5655414あなたは何を望みませんか? – angryip

+0

私はそれに応じて変更し、別の問題に直面しました。これを実現するためにコードをどのように変更する必要がありますか? – Sachin

+1

* "エンコードしようとしましたが、それも機能しませんでした" * - あなたの試したことと何が起こったのかを教えてください。解決策は、URLの 'path'部分をエンコードすることです...正しい方法です。 –

答えて

1

私は単純に追加することで解決策を得ましたrequestUrl.replaceAll(" ", "%20"); しかし、他の特殊文字の場合、これだけでは機能しません。したがって、リクエストを送信する前にURLをエンコードする必要があります。

乾杯:

関連する問題