java.lang.IllegalArgumentException:索引 33 处的路径中存在非法字符:https://box.one.th/app/api/upload
java.lang.IllegalArgumentException: Illegal character in path at index 33: https://box.one.th/app/api/upload
我在做什么:我正在尝试使 FileUploaderClient 具有授权
我收到如下错误: java.lang.IllegalArgumentException:索引 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) {}
}
}
}
错误我的控制台错误
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
在你的 url 末尾有一个 space,正如堆栈跟踪中给出的那样
HttpPost httppost = new HttpPost("https://box.one.th/app/api/upload ");
请trimurl。 Space 是 URI 的无效字符。
参考这个在 url URL encoding the space character: + or %20?
中添加特殊字符
我在做什么:我正在尝试使 FileUploaderClient 具有授权 我收到如下错误: java.lang.IllegalArgumentException:索引 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) {}
}
}
}
错误我的控制台错误
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
在你的 url 末尾有一个 space,正如堆栈跟踪中给出的那样
HttpPost httppost = new HttpPost("https://box.one.th/app/api/upload ");
请trimurl。 Space 是 URI 的无效字符。
参考这个在 url URL encoding the space character: + or %20?
中添加特殊字符