Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 获取意外的JDWP错误:103尝试使用改造上传图像到api服务器android?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试使用改装多部件在api服务器上传图像时,我收到以下103错误消息,api接收api令牌,“_ method”:“PUT”和图像url作为参数,响应时收到完整的 JSON但使用上一个认图像链接,当前所选图像不上传,其他一切都是可选的,任何帮助将不胜感激,代码列在下面谢谢.

主要的@L_607_8@是POST,但“_method”:“PUT”参数允许你上传图像,没有_method它成为POST消息和其他所有参数而不是强制,请检查图像.

接口:

public interface UserSignUpClient {

@POST("account")
Call<AuthenticationAccountCreationResponse> createAccount(@Body UserSignUp userSignUp);

@multipart
@PUT("account")
Call<UserInfo> postImage(@Header("Authorization") String headerValue,@PartMap Map<String,String> map,File> imageMap,@Part MultipartBody.Part imagE);

@FormUrlEncoded
@POST("account")
Call<UserInfo> updateUser(@Header("Authorization") String headerValue,@FieldMap Map<String,String> map);
}

改造生成器类:

public class RestClient {

private UserSignInClient userSignInClient;
private UserSignUpClient userSignUpClient;
private UserInfoClient userInfoClient;

public RestClient(String baseUrlLink){

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    Retrofit retrofit = new Retrofit.builder()
            .baseUrl(baseUrlLink)
            .addConverterFactory(GsonConverterFactory.create(gson)).build();

    if (baseUrlLink.equals(CONSTS.bASE_URL_ADDRESS_TOKEN)){

        userSignInClient = retrofit.create(UserSignInClient.class);
    } else if (baseUrlLink.equals(CONSTS.bASE_URL_ADDRESS_account_CREATION)) {

        userSignUpClient = retrofit.create(UserSignUpClient.class);
    } else if (baseUrlLink.equals(CONSTS.bASE_URL_ADDRESS_user_iNFO)){

        userInfoClient = retrofit.create(UserInfoClient.class);
    }
}

public UserSignInClient getUserSignInClient() {
    return userSignInClient;
}

public UserSignUpClient getUserSignUpClient() {
    return userSignUpClient;
}

public UserInfoClient getUserInfoClient() {
    return userInfoClient;
}
}

主类:

userImage.setOnClickListener(new View.onClickListener() {
        @Override
        public void onClick(View v) {

            galleryIntent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            galleryIntent.setType("*/*");
            startActivityForResult(galleryIntent,RESULT_LOAD_IMG);
        }
    });

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);

    if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK && null != data) {

        Uri SELEctedImageUri = data.getData();
        String filePath = FileUtils.getPath(this,SELEctedImageUri);
        file = new File(filePath);
        image_name = file.getName();

        if (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_CONTACTS)
                != PackageManager.PERMISSION_GRANTED) {

            if (ActivityCompat.shouldShowrequestPermissionRationale(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

            } else {

                ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},MY_PERMISSIONS_requEST_WRITE_EXTERNAL_STORAGE);
            }
        }
    }
}

@Override
public void onrequestPermissionsResult(int requestCode,String permissions[],int[] grantResults) {
    switch (requestCodE) {
        case MY_PERMISSIONS_requEST_WRITE_EXTERNAL_STORAGE: {

            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                StringBuilder StringBuilder = new StringBuilder(AUTHORIZATION);

                sharedPreferences = this.getSharedPreferences(getresources().getString(R.String.token),0);
                StringBuilder.append(sharedPreferences.getString(getresources().getString(R.String.token),""));

                requestBody requestBody = requestBody.create(MediaType.parse("image/*"),filE);
                MultipartBody.Part body = MultipartBody.Part.createFormData("image",file.getName(),requestBody);

                Userupdate userupdate = new Userupdate(filE);

                methodMap.put("_method","PUT");
                imageMap.put("image",filE);

                Call<UserInfo> uploadImage = new RestClient(CONSTS.bASE_URL_ADDRESS_account_CREATION).getUserSignUpClient()
                        .postImage(StringBuilder.toString(),methodMap,imageMap,body);

                uploadImage.enqueue(new CallBACk<UserInfo>() {
                    @Override
                    public void onResponse(Call<UserInfo> call,Response<UserInfo> responsE) {

                        if (response.issuccessful()) {

                            PiCasso.with(DetailActivity.this).load("http://ec2-35-161-195-128.us-West-2.compute.amazonaws.com/" + response.body().getImage()).into(userImagE);

                        }
                    }

                    @Override
                    public void onFailure(Call<UserInfo> call,Throwable t) {

                        Toast.makeText(DetailActivity.this,t.getmessage(),Toast.LENGTH_SHORT).show();
                    }
                });

            } else {

                // permission denied,boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

        }
        return;
    }

    // other 'case' lines to check for other
    // permissions this app might request
}
}

postman api image = https://i.imgur.com/AoCFZI6.png

@H_262_18@

解决方法

我认为您的问题是您忘记在改装对象中添加呼叫适配器.在您的RestClient类中,您必须输入以下内容
Retrofit retrofit = new Retrofit.builder()
            .baseUrl(baseUrlLink)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();

您还需要在build.gradle中添加此依赖项:

compile "com.squareup.retrofit2:adapter-rxjava2:2.3.0"

我希望它有所帮助.

干杯.

@H_262_18@ @H_262_18@

大佬总结

以上是大佬教程为你收集整理的java – 获取意外的JDWP错误:103尝试使用改造上传图像到api服务器android?全部内容,希望文章能够帮你解决java – 获取意外的JDWP错误:103尝试使用改造上传图像到api服务器android?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。