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

如何用Volley在Android中发送“多部分/表单-数据”帖子

田兴朝
2023-03-14

不管怎么说,所有的想法和答案都是极其赞赏的。谢谢你的帮助。

共有1个答案

苏宏逸
2023-03-14
public class MultipartRequest extends Request<String> {

    private MultipartEntity entity = new MultipartEntity();

    private static final String FILE_PART_NAME = "file";
    private static final String STRING_PART_NAME = "text";

    private final Response.Listener<String> mListener;
    private final File mFilePart;
    private final String mStringPart;

    public MultipartRequest(String url, Response.ErrorListener errorListener, Response.Listener<String> listener, File file, String stringPart)
    {
        super(Method.POST, url, errorListener);

        mListener = listener;
        mFilePart = file;
        mStringPart = stringPart;
        buildMultipartEntity();
    }

    private void buildMultipartEntity()
    {
        entity.addPart(FILE_PART_NAME, new FileBody(mFilePart));
        try
        {
            entity.addPart(STRING_PART_NAME, new StringBody(mStringPart));
        }
        catch (UnsupportedEncodingException e)
        {
            VolleyLog.e("UnsupportedEncodingException");
        }
    }

    @Override
    public String getBodyContentType()
    {
        return entity.getContentType().getValue();
    }

    @Override
    public byte[] getBody() throws AuthFailureError
    {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try
        {
            entity.writeTo(bos);
        }
        catch (IOException e)
        {
            VolleyLog.e("IOException writing to ByteArrayOutputStream");
        }
        return bos.toByteArray();
    }

    @Override
    protected Response<String> parseNetworkResponse(NetworkResponse response)
    {
        return Response.success("Uploaded", getCacheEntry());
    }

    @Override
    protected void deliverResponse(String response)
    {
        mListener.onResponse(response);
    }
}
 类似资料:
  • 我正在尝试用RestTemplate上传一个文件到带有Jetty的Raspberry Pi。在Pi上有一个运行的servlet: 这是我得到的输出: UI-elements.html已上传! org.springframework.web.multipart.support.StandardMultipartTtpServletRequest$StandardMultipartFile@47e76

  • 您好,我想向邮递员发送一个带有json的正文和一个formd数据中的图像。。。 我将表单数据图像保存在s3桶中,实体具有作为图像链接的字符串属性 这里是我的spring boot控制器 我已经用@RequestParam和@RequestPart尝试了多部分文件。。。我收到以下错误: "不支持内容类型'multipart/form-data;边界=-------------------------

  • 我已经创建了一个使用“多部分/表单数据”的控制器 采样器请求对象 现在,我将尝试使用模拟MVC测试它,但我不知道如何将“多部分/表单数据”作为内容传递。我看到很多使用JSON的示例,但没有使用多部分/表单数据 有没有一种方法可以完成我的请求与多部分/form_data?理想情况下,它需要在MockHttpServletRequest的主体中

  • 这是在服务器端作为接收的内容: 如何转换multipart Confont数据类型中的文章对象?我读到改造可能允许使用转换器为这个。就我对文档的理解而言,它应该是实现的东西。 多部分部件使用的转换器,或者它们可以实现来处理自己的序列化。 null

  • 如何用Python发送带有请求的?如何发送一个文件,我明白,但如何发送表单数据的方法不能理解。

  • 问题内容: 我正在开发一个向服务器发送大量数据的应用程序。现在我想使用volley将一组参数发送到php页面。但是我无法发送它。 用于将参数添加为Array的代码。 向服务器发出请求的代码 代码或CustomJsonObjectRequest 问题答案: 用 在类,因为你目前正在使用类型为在地图值类,但发送时创建的对象类型的类。 编辑: 要将单个参数中的所有值发送到服务器,请使用。使用所有键值创建