프로그래밍/Java

okhttp3 이용한 API 만들기(1탄 POST 첨부파일 전송)

소행성왕자 2020. 8. 7. 16:59

okhttp3 를 이용하여 API 만들어 보아요

 

아래 소스는 첨부파일 전송하는 예제 소스 입니다.

 

public String postSubmissions(String requestURL, String userId, String password, String jsonMessage) throws IOException {
        
        File file = new File("D:/sample10.cpp");

        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(new BasicAuthInterceptor(userId, password))
                .build();
                
        RequestBody formBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("submitted_file", file.getName(),
                    RequestBody.create(MediaType.parse("text/plain"), file))
                .addFormDataPart("problem", "2")
                .addFormDataPart("language", "gnu-c")
                .addFormDataPart("filename", "sample10.cpp")
                .addFormDataPart("callback_url", "http://localhost:8080/api/callback.do")
                .build();
        
        
        Request request = new Request.Builder()
                .url(requestURL)
                .post(formBody)
                .build();
        
        Response response = client.newCall(request).execute();
        System.out.println(response);
        String message = response.body().string();
        
        CfUtil.dd(message);
        
        return "";
        
}