3

What i am doing: I am trying to make FileUploaderClient with Authorization I am getting error as: java.lang.IllegalArgumentException: Illegal character in path at index 33: https://box.one.th/app/api/upload

FileUploaderClient

   public class FileUploaderClient {

    public static void main(String[] args) {

        // the file we want to upload
        File inFile = new File("C://Users//BallZaR5R5//Desktop//nanana.docx");
        System.out.println(inFile.getAbsolutePath());
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(inFile.getAbsolutePath());

             CloseableHttpClient httpclient = HttpClientBuilder.create().build();   

            // server back-end URL
            HttpPost httppost = new HttpPost("https://box.one.th/app/api/upload ");
            MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 


            // set the file input stream and file name as arguments
            builder.addPart("file", new InputStreamBody(fis, inFile.getName()));
            HttpEntity entity = builder.build();
            httppost.setHeader(HttpHeaders.AUTHORIZATION,  "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9");
            httppost.setEntity(entity);


            // execute the request
            HttpResponse response = httpclient.execute(httppost);

            int statusCode = response.getStatusLine().getStatusCode();
            HttpEntity responseEntity = response.getEntity();
            String responseString = EntityUtils.toString(responseEntity, "UTF-8");

            System.out.println("[" + statusCode + "] " + responseString);

        } catch (ClientProtocolException e) {
            System.err.println("Unable to make connection");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("Unable to read file");
            e.printStackTrace();
        } finally {
            try {
                if (fis != null) fis.close();
            } catch (IOException e) {}
        }
    }


}

Error my console error

    Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in path at index 33: https://box.one.th/app/api/upload 
    at java.net.URI.create(Unknown Source)
    at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:73)
    at chaichana.sitat.test.FileUploaderClient.main(FileUploaderClient.java:37)
Caused by: java.net.URISyntaxException: Illegal character in path at index 33: https://box.one.th/app/api/upload 
    at java.net.URI$Parser.fail(Unknown Source)
    at java.net.URI$Parser.checkChars(Unknown Source)
    at java.net.URI$Parser.parseHierarchical(Unknown Source)
    at java.net.URI$Parser.parse(Unknown Source)
    at java.net.URI.<init>(Unknown Source)
    ... 3 more
BallZaR5R5
  • 33
  • 1
  • 4

1 Answers1

4

There is a space at the end of your url as given in stack trace

HttpPost httppost = new HttpPost("https://box.one.th/app/api/upload "); Please trim the url. Space is invalid char for URI.

refer this to add special chars in url URL encoding the space character: + or %20?

Sagar Kharab
  • 369
  • 2
  • 18