大佬教程收集整理的这篇文章主要介绍了java – 获取意外的JDWP错误:103尝试使用改造上传图像到api服务器android?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
主要的@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@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,请注明来意。