2017-10-04 7 views
-1

以下は、jsonファイルをペイロードとして送信するHTTP POST要求を送信しようとしたものです。私は常に取得エラーがあるjsonファイルとしてペイロードを持つJAVAのHTTP POST要求

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; 
} 
+1

jarファイル内のリソースを取得するために、クラスローダを使用しますあなたが 'new FileReader(" test.json ")でオープンしたと仮定してjavaコマンドを実行します。 – Scadge

+0

@Scadge ..myファイルは実際には同じディレクトリにあります。私はこの質問にも指定しました。 –

+1

すべてのPOSTコンテキストから質問を抽象化する必要があります。あなたの問題は、あなたのファイルが見つからないことを再開することができます。このようなソリューションを見ましたか? https://stackoverflow.com/questions/6639/how-should-i-load-files-into-my-java-application –

答えて

0

はあなたのtest.jsonは `あなたが実行し、同じディレクトリにある必要があり

getClass().getClassLoader().getResourceAsStream(filename) 
関連する問題