0

有以下代码:

private static String doPostRequest(List<NameValuePair> params, String url) throws ClientProtocolException, IOException {
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(url);

    httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
    HttpResponse response = httpclient.execute(httppost); 

    return getContentFromInputStream(response.getEntity().getContent());
} 

private static String getContentFromInputStream(InputStream is) throws IOException {
    String line;
    StringBuilder sb=new StringBuilder();
    BufferedReader reader=new BufferedReader(new InputStreamReader(is));
    while((line=reader.readLine())!=null) {
        sb.append(line);
    }
    reader.close();
    return sb.toString();
}

那么,如何在我的 POST 请求中添加一些图像(例如,文件 f)?提前致谢。

4

2 回答 2

1

这是 Servlet 3 的“多部分文件上传”的一部分。

您将构建图像的 blob,然后将其发布到 Servlet 3 端点。

看看这里这里的例子

如果您打算使用 Spring,它有一些非常好的简单注释来定义您的控制器,这些控制器将与文件上传一起使用,您可以在此处查看

于 2013-06-19T10:47:55.193 回答
0

您可以使用MultipartRequestEntity

        File f = new File(filePath);
        PostMethod postMessage = new PostMethod(urlString);
        Part[] parts = {
                new StringPart("param", "value"),
                new FilePart(f.getName(), f)
        };
        postMessage.setRequestEntity(new MultipartRequestEntity(parts, postMessage.getParams()));
        HttpClient client = new HttpClient();

        int status = client.executeMethod(postMessage);
于 2013-06-19T10:56:40.340 回答