-1
以下是我試圖發送HTTP POST請求,將json文件作爲有效負載發送的請求。錯誤我總是得到的是JAVA中的HTTP POST請求,有效負載作爲json文件
java.io.FileNotFoundException:test.json(系統找不到指定的文件)
雖然test.json文件是在同一文件夾中。
private void sendPost() throws Exception {`
String url = "url";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
String postData = AutomaticOnboarding.readFile("test.json");
urlParameters.add(new BasicNameValuePair("data", postData));
StringEntity se = new StringEntity(postData);
post.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
post.setEntity(se);
HttpResponse response = httpClient.execute(post);
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + post.getEntity());
int responseCode = response.getStatusLine().getStatusCode();
System.out.println("Response Code : " +responseCode);
if(responseCode == 200){
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
System.out.println(result.toString());
}
}
這裏遵循READFILE方法:
public static String readFile(String filename) {
String result = "";
try {
BufferedReader br = new BufferedReader(new FileReader(filename));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
result = sb.toString();
} catch(Exception e) {
e.printStackTrace();
}
return result;
}
你test.json應該是在同一個目錄下運行'資源java'命令假設你用'FileReader(「test.json」)打開它' – Scadge
@Scadge ..my文件確實在同一個目錄下。我也在問題中指出了這一點。 –
您應該從所有POST上下文中抽象出您的問題。您的問題可以恢復,您的文件無法找到。你看過這樣的解決方案嗎? https://stackoverflow.com/questions/6639/how-should-i-load-files-into-my-java-application –