Android OkHttp 4 RequestBody. create () 오래된 해결 방법 kotlin, java 버 전

9354 단어 androidokhttp4kotlin
얼마 전에 OKhttp 3 는 Okhttp 4 로 업그레이드 되 었 습 니 다. 작성 언어 는 자바 에서 kotlin 으로 넘 어 갔 고 예전 에 okhttp 3 에서 자주 사용 하 던 post 에서 데 이 터 를 제출 했 습 니 다. RequestBody.create() 시간 이 지 났 고 kotlin 의 새로운 기능 쓰기 로 바 뀌 었 습 니 다!
okhttp 3 post 에서 요청 한 코드 (4.0 버 전이 지 났 습 니 다):
val request:Request=Request
				.Builder()
				.post(RequestBody.create(MediaType.parse("application/json;charset=utf-8"),"body参数"))
				.build()

okhttp 4 post 최신 요청 코드:
kotlin 버 전:
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.RequestBody.Companion.asRequestBody

//String转RequestBody String、ByteArray、ByteString都可以用toRequestBody()
val stringBody ="body参数".toRequestBody("application/json;charset=utf-8".toMediaType())
 val request:Request=Request
                .Builder()
                .post(stringBody)
                .build()
                
//File转RequestBody
val file=File("")
val fileBody=file.asRequestBody("text/x-markdown; charset=utf-8".toMediaType())
val request = MultipartBody.Builder()
                    .addFormDataPart("file", file.name,fileBody)
                    .build()



자바 버 전:
import okhttp3.MediaType.Companion.*;
import okhttp3.RequestBody.Companion.*;

//String转RequestBody String、ByteArray、ByteString都可以用toRequestBody()
 MediaType mediaType=MediaType.Companion.parse("application/json;charset=utf-8");
 RequestBody stringBody=RequestBody.Companion.create("body参数",mediaType);
 Request request=new Request
                .Builder()
                .post(stringBody)
                .build();
                
//File转RequestBody
MediaType mediaType=MediaType.Companion.parse("text/x-markdown; charset=utf-8");
File file=new File("");
RequestBody fileBody=RequestBody.Companion.create(file,mediaType);
Request request=new MultipartBody.Builder()
                .addFormDataPart("file", file.getName(),fileBody)
                .build();

이것 이 바로 okhttp 4.0 최신 post 에서 매개 변수 요청 코드 입 니 다. 공식 적 으로 업그레이드 안내 서 를 내 놓 았 지만 컴 파일 러 가 최신 버 전이 아니 기 때문에 toRequestBody() 를 사용 할 때 컴 파일 러 가 가방 도입 을 알 리 지 않 아 오 랜 시간 을 고생 했 습 니 다.컴 파일 러 가 가방 도입 을 알려 주지 않 으 면 수 동 으로 추가 하 는 것 을 기억 하면 된다.

좋은 웹페이지 즐겨찾기