Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA中的HTTP POST请求,有效负载为json文件_Java_Json_Rest_Post - Fatal编程技术网

JAVA中的HTTP POST请求,有效负载为json文件

JAVA中的HTTP POST请求,有效负载为json文件,java,json,rest,post,Java,Json,Rest,Post,下面是我试图发送的HTTP POST请求,该请求将json文件作为有效负载发送。我经常犯的错误是 java.io.FileNotFoundException:test.json(系统找不到指定的文件) 尽管test.json文件位于同一文件夹中 private void sendPost() throws Exception {` String url = "url"; HttpClient httpClient = HttpClientBuilder.create().bui

下面是我试图发送的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());
    }
}

使用类加载器获取jar中的资源

getClass().getClassLoader().getResourceAsStream(filename)

假设您使用
newfilereader(“test.json”)
@Scadge打开test.json,则test.json应该位于运行
java
命令的同一目录中。我的文件确实位于同一目录中。我在问题中也详细说明了这一点。你应该把你的问题从文章的上下文中抽象出来。您的问题可能是找不到您的文件。你看过这样的解决方案吗@FirstUser如何运行您的程序?请注意,.java和test.json文件不应该在同一个文件夹中,但正如我所说,test.json应该在运行程序的文件夹中,即run
java
command@Scadge我正在Eclipse中运行程序..我应该将文件移动到某个特定目录吗。
getClass().getClassLoader().getResourceAsStream(filename)