0

有以下代码:

public static void uploadUserpick(File file) throws URISyntaxException, ClientProtocolException, IOException {  
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(USERPICK_URL);
    MultipartEntity entity = new MultipartEntity();
    entity.addPart("upload", new FileBody(file));
    httppost.setEntity(entity);
    HttpResponse response = httpclient.execute(httppost); 
}

存在以下问题 - 后端代码限制了 POST 请求的 MIME 类型,因此我需要设置我的图像文件(文件文件)的 MIME 类型。我该如何设置?

4

4 回答 4

2

您应该根据图像的格式添加"Content-Type"标题。HttpPost例如,如果您fileGIF图像,则应按以下方式添加标题:

httppost.addHeader(new BasicHeader ("Content-Type", "image/gif"));

希望能帮助到你。


编辑

正如在另一个答案中提到的那样,该addHeader方法实际上比我最初提到的方法具有更直接的重载。

httppost.addHeader("Content-Type", "image/gif");
于 2013-06-19T20:11:46.070 回答
0

你可以更换

new FileBody(file)

经过

new FileBody(file, "image/jpeg");

请参阅相关问题博客文章

于 2013-06-19T20:20:18.263 回答
0

在春天的情况下,你可以这样做使用MediaType

@RequestMapping(value = { "/xml/private/secure/store.html"}, 
        method = RequestMethod.POST,
        produces = MediaType.APPLICATION_XML_VALUE) 
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody 
public StoreDTO returnStoreXML(Model model, 
        @RequestParam(value = "id", required = false) String id,
        @RequestParam(value = "name", required = false) String name) {

}       
于 2013-06-19T20:31:00.257 回答
0

我在这里找到了如何做到这一点。只需这样做:

httppost.addHeader("Content-Type", "application/xml"); 
于 2013-06-19T20:11:53.317 回答