繁体   English   中英

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

[英]HTTP POST request in JAVA with payload as a json file

以下是我尝试发送的 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;
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM