使用 okhttp 3.9.0 将文件上传到 REST 会出现错误代码=422,消息=Uprocessable Entity

发布于 2025-01-10 22:24:12 字数 1834 浏览 2 评论 0原文

我正在尝试通过 okhttp3 (3.9.0) 将文件上传到 REST 服务。

它不起作用,我收到错误:** code=422,message=Unprocessable Entity** 但我找不到我的错误...

这是我的代码:

private void test_OK_HTTP() {

        String userCredentials = "username:password";
        String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes()));

        File f = new File("C:\\history48.png");
       
      
        OkHttpClient client = new OkHttpClient();

        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("DocumentName", "file.png")
                .addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0&")
                .addFormDataPart("FK_FileManagerFormKey", "33")
                .addFormDataPart("SystemFileType", "368")
                .addFormDataPart("Subject", "test")
                .addFormDataPart("SubjectDate", "2022-02-24")
                .addFormDataPart("DocumentContent", "file.png", RequestBody.create(MediaType.parse("image/png"), f))                                    
                .build();

        Request request = new Request.Builder()
                .url("http://myurlthatworksfine/RestServiceTest/AddNewDocument")
                .addHeader("api-version", "v1")
                .addHeader("Authorization", basicAuth)
                .post(requestBody)            
                .build();
        
        System.out.println("Request: "+request.body().toString());

        try {
            Response response = client.newCall(request).execute();
            System.out.println("Response: " + response.toString());

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Error: "+e);
        }

    } 

有人知道我做错了什么吗?

谢谢。

I'm trying to upload a file to a REST-Service via okhttp3 (3.9.0).

It does not work and I got the error: ** code=422, message=Unprocessable Entity**
but I can't find my error ...

Here is my code:

private void test_OK_HTTP() {

        String userCredentials = "username:password";
        String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes()));

        File f = new File("C:\\history48.png");
       
      
        OkHttpClient client = new OkHttpClient();

        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("DocumentName", "file.png")
                .addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0&")
                .addFormDataPart("FK_FileManagerFormKey", "33")
                .addFormDataPart("SystemFileType", "368")
                .addFormDataPart("Subject", "test")
                .addFormDataPart("SubjectDate", "2022-02-24")
                .addFormDataPart("DocumentContent", "file.png", RequestBody.create(MediaType.parse("image/png"), f))                                    
                .build();

        Request request = new Request.Builder()
                .url("http://myurlthatworksfine/RestServiceTest/AddNewDocument")
                .addHeader("api-version", "v1")
                .addHeader("Authorization", basicAuth)
                .post(requestBody)            
                .build();
        
        System.out.println("Request: "+request.body().toString());

        try {
            Response response = client.newCall(request).execute();
            System.out.println("Response: " + response.toString());

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Error: "+e);
        }

    } 

Has any one any idea what I'm doing wrong?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

动次打次papapa 2025-01-17 22:24:12

我的测试 ID 中有一个简单的错误...它现在可以工作了...:)

错误:
.addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0&")

确定:
.addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0")

I had a simple error in my test-id ... it works now ... :)

WRONG:
.addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0&")

OK:
.addFormDataPart("FK_Person", "1d64b9cc-d405-47c4-9adb-ef276c391ae0")

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文