当前位置: 首页 > 知识库问答 >
问题:

用表单数据更新Post请求

邬浩涆
2023-03-14

我对Android系统是新手。我想上传图像作为表单数据使用改型后的方法。我正在使用com.squareup.retrofit2:retrofit:2.3.0

这是我的请求体。

共有1个答案

苏嘉志
2023-03-14

**使界面像这样,在请求中添加“multipartbody.part”,并将您的图像路径设置为post方法,您可以使用referfit上传图像。使用这个networkclient类创建referfit实例**

public class NetworkClient {
    private static final String BASE_URL = "";
    private static Retrofit retrofit;
    public static Retrofit getRetrofitClient(Context context) {
        if (retrofit == null) {
            OkHttpClient okHttpClient = new OkHttpClient.Builder()
                    .build();
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .client(okHttpClient)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }

}

public interface UploadAPIs {
        @Multipart
        @POST("/upload")
        Call<ResponseBody> uploadImage(@Part MultipartBody.Part file, @Part("name") RequestBody requestBody);
    }    



     private void uploadToServer(String filePath) {
                 Retrofit retrofit = NetworkClient.getRetrofitClient(this);
                 UploadAPIs uploadAPIs = retrofit.create(UploadAPIs.class);
                 //Create a file object using file path
                 File file = new File(filePath);
                 // Create a request body with file and image media type
                 RequestBody fileReqBody = RequestBody.create(MediaType.parse("image/*"), file);
                 // Create MultipartBody.Part using file request-body,file name and part name 
                 MultipartBody.Part part = MultipartBody.Part.createFormData("upload", file.getName(), fileReqBody);
                 //Create request body with text description and text media type
                 RequestBody description = RequestBody.create(MediaType.parse("text/plain"), "image-type");
                 // 
                 Call call = uploadAPIs.uploadImage(part, description);
                 call.enqueue(new Callback() {
                     @Override
                     public void onResponse(Call call, Response response) {
                     }
                     @Override
                     public void onFailure(Call call, Throwable t) {
                     }
                 });
             }
 类似资料:
  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 全部的 只是想看看用表单中提交的数据更新数据库行的最佳选项是什么。我理解Laravel更新查询生成器,但是我在如何获取表单数据,然后执行该查询方面遇到了困难。相对较新的Laravel:)这是我想出的,只是从我的PHP经验和逻辑: 我曾试图将查询放入一个函数中,然后让表单操作成为函数: 正如我所说,主要问题是试图让命名的表单对象成为更新行的对象。我有两个文本输入字段,分别命名为“body”和“not

  • 问题内容: 我正在使用微信API …在这里,我必须使用此API http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_Files将图像上传到微信服务器 我无法发布数据 问题答案: 来自微信API文档: 将上面的命令翻译成python:

  • 问题内容: 我需要有关ajax的帮助。我想更新一个php文件,它将更新数据库。我有一个表格,它将选中的复选框发送到一个php文件,然后更新数据库。我想用ajax做到这一点,但我为此感到挣扎。我知道如何通过Ajax 更新HTML元素,但是无法解决。 HTML脚本 PHP updateDB.php 我希望此更新无需刷新页面。 问题答案: 我只想要一些建议,首先您的html页面代码应该喜欢- 现在我转向

  • 问题内容: 在Apache Commons HttpClient的3.x版本中,可以进行multipart / form-data POST请求(2004年的示例)。不幸的是,这在HttpClient的4.0版本中不再可能。 对于我们的核心活动“ HTTP”,多部分内容超出了范围。我们很乐意使用由其他项目维护的多部分代码,但我对此一无所知。几年前,我们曾尝试将多部分代码移至commons编解码器,