Java 通过PUT请求上传多部分/表单数据,不';你不能在okhttp上工作吗?

Java 通过PUT请求上传多部分/表单数据,不';你不能在okhttp上工作吗?,java,curl,okhttp,Java,Curl,Okhttp,我不知道是虫子,还是我做错了什么 这是我的okhttp请求: private static final MediaType MEDIA_TYPE_JPEG = MediaType.parse("image/jpeg"); protected void putImage(String path) throws IOException { RequestBody requestBody = new MultipartBuilder() .type(MultipartBuil

我不知道是虫子,还是我做错了什么

这是我的
okhttp
请求:

private static final MediaType MEDIA_TYPE_JPEG = MediaType.parse("image/jpeg");

protected void putImage(String path) throws IOException {
    RequestBody requestBody = new MultipartBuilder()
        .type(MultipartBuilder.FORM)
        .addPart(
            Headers.of("Content-Disposition", "form-data; name=\"image\""),
            RequestBody.create(MEDIA_TYPE_JPEG, new File(path)))
        .build();
    Request request = new Request.Builder()
        .url("http://localhost:9090/")
        .put(requestBody)
        .build();
    Timber.d(request.urlString());
    okHttpClient.newCall(request).enqueue(new Callback() {
       @Override public void onFailure(Request request, IOException e) {
           e.printStackTrace();
       }

       @Override public void onResponse(Response response) throws IOException {
           Timber.d(response.body().string());
       }
    });
}
它给出了以下错误:

我认为它只是后端代码有一个bug,但是它在
curl
上工作:

curl -v -XPUT -include --form asdfasdf=@Photo_20140806_000942.jpg http://localhost:9090/
我的问题是:

  • putImage
    是否正确并与
    okhttp
    对齐
  • 我的
    curl
    命令是否非常智能地工作,从而使其工作
  • 或者
    okhttp
    做我的后端代码应该处理的额外事情

  • 您可能需要指定文件名标题。尝试如下设置
    内容配置

    Headers.of("Content-Disposition", "form-data; name=\"image\"; filename=\"Photo_20140806_000942.jpg\"")
    

    后端代码链接对我不起作用。那个项目是公共的吗?@JesseWilson对不起,我刚刚重新启动了后端。是的,这是公开的。你说得对。这是因为
    文件名
    ;)你们能更新一下吗?这会为某人节省很多时间。再次谢谢你,伙计!