2016-06-30 7 views
3

Ich versuche, GET-Anfrage von Java über Apache REST-Client zu senden und dieses Problem festgestellt.java.net.URISyntaxException: Unzulässiges Zeichen im Pfad bei Index 75

java.net.URISyntaxException: Illegale Zeichen im Pfad bei Index 75: http://torrento.sharepoint.com/_api/web/getfolderbyserverrelativeurl ('/ Shared Dokumente/test')/Dateien auf java.net.URI $ Parser.fail (URI.java:2848) bei java.net.URI $ Parser.checkChars (URI.java:3021) um java.net.URI $ Parser.parseHierarchical (URI.java:3105) um java.net.URI $ Parser.parse (URI .java: 3053) unter java.net.URI. (URI.java:588) um ​​ org.apache.http.client.utils.URIBuilder. (URIBuilder.java:82) um com.mstack.samples.sharepoint .SharepointApp.getAllFiles (SharepointApp.java:61) um com.mstack.samples.sharepoint.SharepointApp.main (SharepointApp.java:45)

-Code-Schnipsel: -

  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); 

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

weiß, dass ich den Raum zwischen Freigegeben und Dokumente ist das Problem. Versucht es zu verschlüsseln. Aber das hat auch nicht funktioniert. Bitte helfen

+0

ist: http://Stackoverflow.com/a/724764/5655414 nicht was Sie wollen? – angryip

+0

Ich habe mich dementsprechend geändert und bin auf andere Probleme gestoßen. Können Sie mir sagen, wie ich den Code ändern soll, damit das funktioniert? – Sachin

+1

* "Versucht, es zu verschlüsseln. Aber das hat auch nicht funktioniert." * - Zeig uns, was du versucht hast und was passiert ist. Weil die Lösung darin besteht, den "Pfad" -Teil der URL zu kodieren ... den richtigen Weg. –

Antwort

1

Ich habe die Lösung durch einfaches Hinzufügen requestUrl.replaceAll(" ", "%20"); erhalten Aber im Falle anderer Sonderzeichen wird dies allein nicht funktionieren. Also müssen wir die URL vor dem Senden der Anfrage codieren.

Prost :)

Verwandte Themen