Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 Mulipart呼叫的Jersey客户端_Java_Rest_Multipart_Jersey Client - Fatal编程技术网

Java Mulipart呼叫的Jersey客户端

Java Mulipart呼叫的Jersey客户端,java,rest,multipart,jersey-client,Java,Rest,Multipart,Jersey Client,我正在使用jerseyclient对API进行REST调用,该API在mulipart中返回Json和PDF文件,作为响应的第一部分和第二部分 final Client client = ClientBuilder.newClient(); final WebTarget target = client.target(endPoint); final Builder request = target.request().header("Authorization", auth

我正在使用
jersey
client对API进行REST调用,该API在mulipart中返回Json和PDF文件,作为响应的第一部分和第二部分

final Client client = ClientBuilder.newClient();
final WebTarget target = client.target(endPoint);
final Builder request = target.request().header("Authorization", authKey);
final Response response = request.get();
final String readEntity = response.readEntity(String.class);
这将以字节码格式返回PDF文件的字符串响应。 我试图将实体读取为多部分类,然后出现异常:

未找到媒体类型=多部分/表单数据的消息正文读取器;边界=----#####和 客户端上的getMediaType()调用返回多部分/表单数据;边界=----#####


使用上述客户端解析此多部分响应的正确方法是什么?

我希望下面的代码能够帮助您

Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter(username,password ))
WebResource webResource = client.resource("URL");
ClientResponse response = webResource.accept("*/*").type(MediaType.APPLICATION_OCTET_STREAM).get(ClientResponse.class);
Assert.assertEquals(response.getStatus(), 200);
MultivaluedMap<String, String> headers = response.getHeaders();
System.out.println("Content-Disposition  :" + headers.get("Content-Disposition"));
List<String> filename=headers.get("Content-Disposition");
file_name=filename.get(0);
file_name=file_name.substring(file_name.indexOf("\"")+1,file_name.lastIndexOf("\""));
File file=new File(file_name);
if(!file.exists()) {
    file.createNewFile();
}
InputStream inputStream=response.getEntityInputStream();
FileOutputStream fileStream =
        new FileOutputStream(file);
IOUtils.copy(inputStream, fileStream);
fileStream.flush();
fileStream.close();
Assert.assertTrue(file.length()>0);
//Deleting the backup file
file.delete();
Client=Client.create();
addFilter(新的HTTPBasicAuthFilter(用户名、密码))
WebResource=client.resource(“URL”);
ClientResponse response=webResource.accept(“*/*”).type(MediaType.APPLICATION\u OCTET\u STREAM.get(ClientResponse.class);
Assert.assertEquals(response.getStatus(),200);
多值Map headers=response.getHeaders();
System.out.println(“内容处置:”+headers.get(“内容处置”);
列表文件名=headers.get(“内容处置”);
file_name=filename.get(0);
file\u name=file\u name.substring(file\u name.indexOf(“\”)+1,file\u name.lastIndexOf(“\”);
文件=新文件(文件名);
如果(!file.exists()){
createNewFile();
}
InputStream InputStream=response.getEntityInputStream();
FileOutputStream文件流=
新文件输出流(文件);
复制(inputStream、fileStream);
flush();
fileStream.close();
Assert.assertTrue(file.length()>0);
//删除备份文件
delete();

我希望下面的代码能帮助您

Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter(username,password ))
WebResource webResource = client.resource("URL");
ClientResponse response = webResource.accept("*/*").type(MediaType.APPLICATION_OCTET_STREAM).get(ClientResponse.class);
Assert.assertEquals(response.getStatus(), 200);
MultivaluedMap<String, String> headers = response.getHeaders();
System.out.println("Content-Disposition  :" + headers.get("Content-Disposition"));
List<String> filename=headers.get("Content-Disposition");
file_name=filename.get(0);
file_name=file_name.substring(file_name.indexOf("\"")+1,file_name.lastIndexOf("\""));
File file=new File(file_name);
if(!file.exists()) {
    file.createNewFile();
}
InputStream inputStream=response.getEntityInputStream();
FileOutputStream fileStream =
        new FileOutputStream(file);
IOUtils.copy(inputStream, fileStream);
fileStream.flush();
fileStream.close();
Assert.assertTrue(file.length()>0);
//Deleting the backup file
file.delete();
Client=Client.create();
addFilter(新的HTTPBasicAuthFilter(用户名、密码))
WebResource=client.resource(“URL”);
ClientResponse response=webResource.accept(“*/*”).type(MediaType.APPLICATION\u OCTET\u STREAM.get(ClientResponse.class);
Assert.assertEquals(response.getStatus(),200);
多值Map headers=response.getHeaders();
System.out.println(“内容处置:”+headers.get(“内容处置”);
列表文件名=headers.get(“内容处置”);
file_name=filename.get(0);
file\u name=file\u name.substring(file\u name.indexOf(“\”)+1,file\u name.lastIndexOf(“\”);
文件=新文件(文件名);
如果(!file.exists()){
createNewFile();
}
InputStream InputStream=response.getEntityInputStream();
FileOutputStream文件流=
新文件输出流(文件);
复制(inputStream、fileStream);
flush();
fileStream.close();
Assert.assertTrue(file.length()>0);
//删除备份文件
delete();

快速的谷歌搜索会给出结果。您必须启用
MultiPartFeature
,并执行
response.readEntity(InputStream.class)

从中获取以下代码


快速的谷歌搜索会给你结果。您必须启用
MultiPartFeature
,并执行
response.readEntity(InputStream.class)

从中获取以下代码


webResource的数据类型是什么?webResource的数据类型是什么?因为我的响应中有一个Json后跟一个PDF,client.property中的数据应该是什么?它将是API的
@生成的任何内容。您可以忽略ITA,因为我的响应中有一个Json后跟一个PDF,client.property中的数据应该是什么?它将是API的
@生成的任何内容。你可以忽略它