Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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 使用改进的Pdf和图像上载_Java_Android_File Upload_Retrofit - Fatal编程技术网

Java 使用改进的Pdf和图像上载

Java 使用改进的Pdf和图像上载,java,android,file-upload,retrofit,Java,Android,File Upload,Retrofit,我试图上传pdf和图片从同一个API使用改装,令人惊讶的是,我无法得到一个正确的书面答案的问题,我卡住了。图像上传部分工作得非常好,但当我试图上传pdf时,该功能突然终止,没有响应或错误 是的,我还混淆了RequestBody和MultipartBody.Part的用法 这些是遇到错误的代码段 API接口 @Headers({ "x-api-key: R9OH5BHSKP8XELMQGMC6OBAZ", "Authorization:

我试图上传pdf和图片从同一个API使用改装,令人惊讶的是,我无法得到一个正确的书面答案的问题,我卡住了。图像上传部分工作得非常好,但当我试图上传pdf时,该功能突然终止,没有响应或错误

是的,我还混淆了RequestBody和MultipartBody.Part的用法

这些是遇到错误的代码段

API接口

@Headers({
        "x-api-key: R9OH5BHSKP8XELMQGMC6OBAZ",
        "Authorization: Basic T2ZmZXItQWRtaW46b2ZmZXJfYWRtaW5fMTIzKjg5MA==",
        "cache-control: no-cache"
})
@Multipart
@POST("api/user/Details/pay_slip_image_upload")
Call<PaySlipImageModel> uploadPaySlipImageApi(@Part("token") RequestBody token, @Part MultipartBody.Part pay_slip_image);
@标题({
“x-api-key:R9OH5BHKP8XLMQGMC6Obaz”,
“授权:基本T2ZmZXItQWRtaW46b2ZmZXJfYWRtaW5fMTIzKjg5MA=”,
“缓存控制:无缓存”
})
@多部分
@POST(“api/用户/详细信息/付款单\图像\上传”)
调用uploadPaySlipImageApi(@Part(“token”)RequestBody token,@Part MultipartBody.Part pay\u slip\u image);
上传pdf功能

    private void uploadPdfApiHit(File file) {
    if (NetworkInfo.hasConnection(getActivity())) {
        //calling the API client
        ApiInterface apiService = ApiClient.getClient(ApiClient.BASE_URL).create(ApiInterface.class);

        RequestBody requestFile = RequestBody.create(MediaType.parse("application/pdf"), file);
        final MultipartBody.Part body = MultipartBody
                .Part
                .createFormData("pay_slip_image", "pay_slip_pdf.pdf", requestFile);

        RequestBody token = RequestBody
                .create(MediaType.parse("multipart/form-data"), tokenLogin);

        Call<PaySlipImageModel> call = apiService.uploadPaySlipImageApi(token, body);
        call.enqueue(new Callback<PaySlipImageModel>() {
            @Override
            public void onResponse(Call<PaySlipImageModel> call, Response<PaySlipImageModel> response) {


                if (response.isSuccessful() && response.body().getStatus() == 200) {
                    Toast.makeText(getActivity(), response.body().getMessage(), Toast.LENGTH_SHORT)
                            .show();
                    if (selectedResponse != 2)
                        setImageView();

                    progressbar.setVisibility(View.GONE);
                    viewNextButton();


                } else {
                    uploadPaySlip.setEnabled(true);
                    progressbar.setVisibility(View.GONE);

                    ResponseBody errorBody = response.errorBody();

                    Gson gson = new Gson();

                    try {

                        Response errorResponse = gson.fromJson(errorBody.string(), Response.class);
                        Toast.makeText(getActivity(), errorResponse.message(), Toast.LENGTH_SHORT)
                                .show();

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            @Override
            public void onFailure(Call<PaySlipImageModel> call, Throwable t) {
                uploadPaySlip.setEnabled(true);
                progressbar.setVisibility(View.GONE);

                Toast.makeText(getActivity(), "OOpss Something went wrong!", Toast.LENGTH_SHORT)
                        .show();

            }
        });

    }
}
    private void uploadImageApiHit(byte[] imageBytes) {
    if (NetworkInfo.hasConnection(getActivity())) {
        //calling the API client
        ApiInterface apiService = ApiClient.getClient(ApiClient.BASE_URL).create(ApiInterface.class);

        RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpeg"), imageBytes);
        final MultipartBody.Part body = MultipartBody
                .Part
                .createFormData("pay_slip_image", "pay_slip_image.jpeg", requestFile);
        RequestBody token = RequestBody.create(MediaType.parse("multipart/form-data"), tokenLogin);

        Call<PaySlipImageModel> call = apiService.uploadPaySlipImageApi(token, body);
        call.enqueue(new Callback<PaySlipImageModel>() {
            @Override
            public void onResponse(Call<PaySlipImageModel> call, Response<PaySlipImageModel> response) {


                if (response.isSuccessful() && response.body().getStatus() == 200) {
private void uploadPdfApiHit(文件){
if(NetworkInfo.hasConnection(getActivity())){
//调用API客户端
ApiInterface apiService=ApiClient.getClient(ApiClient.BASE\uURL).create(ApiInterface.class);
RequestBody requestFile=RequestBody.create(MediaType.parse(“application/pdf”),文件);
最终多部件主体。部件主体=多部件主体
部分
.createFormData(“付款单图像”,“付款单pdf.pdf”,请求文件);
RequestBody令牌=RequestBody
.create(MediaType.parse(“多部分/表单数据”),tokenLogin);
Call Call=apiService.uploadPaySlipImageApi(令牌,主体);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()&&response.body().getStatus()==200){
Toast.makeText(getActivity(),response.body().getMessage(),Toast.LENGTH\u SHORT)
.show();
如果(selectedResponse!=2)
setImageView();
progressbar.setVisibility(View.GONE);
viewNextButton();
}否则{
UploadPaysslip.setEnabled(true);
progressbar.setVisibility(View.GONE);
ResponseBody errorBody=response.errorBody();
Gson Gson=新的Gson();
试一试{
Response errorResponse=gson.fromJson(errorBody.string(),Response.class);
Toast.makeText(getActivity(),errorResponse.message(),Toast.LENGTH\u SHORT)
.show();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
UploadPaysslip.setEnabled(true);
progressbar.setVisibility(View.GONE);
Toast.makeText(getActivity(),“哦,出了什么问题!”,Toast.LENGTH\u SHORT)
.show();
}
});
}
}
上传ImageAPIfunction

    private void uploadPdfApiHit(File file) {
    if (NetworkInfo.hasConnection(getActivity())) {
        //calling the API client
        ApiInterface apiService = ApiClient.getClient(ApiClient.BASE_URL).create(ApiInterface.class);

        RequestBody requestFile = RequestBody.create(MediaType.parse("application/pdf"), file);
        final MultipartBody.Part body = MultipartBody
                .Part
                .createFormData("pay_slip_image", "pay_slip_pdf.pdf", requestFile);

        RequestBody token = RequestBody
                .create(MediaType.parse("multipart/form-data"), tokenLogin);

        Call<PaySlipImageModel> call = apiService.uploadPaySlipImageApi(token, body);
        call.enqueue(new Callback<PaySlipImageModel>() {
            @Override
            public void onResponse(Call<PaySlipImageModel> call, Response<PaySlipImageModel> response) {


                if (response.isSuccessful() && response.body().getStatus() == 200) {
                    Toast.makeText(getActivity(), response.body().getMessage(), Toast.LENGTH_SHORT)
                            .show();
                    if (selectedResponse != 2)
                        setImageView();

                    progressbar.setVisibility(View.GONE);
                    viewNextButton();


                } else {
                    uploadPaySlip.setEnabled(true);
                    progressbar.setVisibility(View.GONE);

                    ResponseBody errorBody = response.errorBody();

                    Gson gson = new Gson();

                    try {

                        Response errorResponse = gson.fromJson(errorBody.string(), Response.class);
                        Toast.makeText(getActivity(), errorResponse.message(), Toast.LENGTH_SHORT)
                                .show();

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            @Override
            public void onFailure(Call<PaySlipImageModel> call, Throwable t) {
                uploadPaySlip.setEnabled(true);
                progressbar.setVisibility(View.GONE);

                Toast.makeText(getActivity(), "OOpss Something went wrong!", Toast.LENGTH_SHORT)
                        .show();

            }
        });

    }
}
    private void uploadImageApiHit(byte[] imageBytes) {
    if (NetworkInfo.hasConnection(getActivity())) {
        //calling the API client
        ApiInterface apiService = ApiClient.getClient(ApiClient.BASE_URL).create(ApiInterface.class);

        RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpeg"), imageBytes);
        final MultipartBody.Part body = MultipartBody
                .Part
                .createFormData("pay_slip_image", "pay_slip_image.jpeg", requestFile);
        RequestBody token = RequestBody.create(MediaType.parse("multipart/form-data"), tokenLogin);

        Call<PaySlipImageModel> call = apiService.uploadPaySlipImageApi(token, body);
        call.enqueue(new Callback<PaySlipImageModel>() {
            @Override
            public void onResponse(Call<PaySlipImageModel> call, Response<PaySlipImageModel> response) {


                if (response.isSuccessful() && response.body().getStatus() == 200) {
private void uploadImageApiHit(字节[]imageBytes){
if(NetworkInfo.hasConnection(getActivity())){
//调用API客户端
ApiInterface apiService=ApiClient.getClient(ApiClient.BASE\uURL).create(ApiInterface.class);
RequestBody requestFile=RequestBody.create(MediaType.parse(“image/jpeg”),imageBytes);
最终多部件主体。部件主体=多部件主体
部分
.createFormData(“付款单图像”、“付款单图像.jpeg”、请求文件);
RequestBody token=RequestBody.create(MediaType.parse(“多部分/表单数据”),tokenLogin);
Call Call=apiService.uploadPaySlipImageApi(令牌,主体);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()&&response.body().getStatus()==200){
// Toast.makeText(getActivity(),response.body().getMessage(),Toast.LENGTH_SHORT).show(); responceImageURL=response.body().getImgURL()

if(selectedResponse!=2)
setImageView();
}否则{
UploadPaysslip.setEnabled(true);
progressbar.setVisibility(View.GONE);
ResponseBody errorBody=response.errorBody();
Gson Gson=新的Gson();
试一试{
Response errorResponse=gson.fromJson(errorBody.string(),Response.class);
Toast.makeText(getActivity(),errorResponse.message(),Toast.LENGTH\u SHORT)
.show();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
UploadPaysslip.setEnabled(true);
progressbar.setVisibility(View.GONE);
Toast.makeText(getActivity(),“哦,出了什么问题!”,Toast.LENGTH\u SHORT)
.show();
}
});
}
}
是的,当我试图将MultipartBody.Part更改为just RequestBody并进行所需的更改时,我得到一个错误响应,消息是“Parameter not set”

有人能解决这个问题吗?
提前谢谢。

我以为您正在向服务器发送同名的图像和pdf