android okhttp 模拟网页只传oss 有问题,请管理员看一下
android使用okhttp 上传图片到oss有问题
help.aliyun.com/document_detail/26769.html?spm=5176.doc26699.6.181.MB64Km
方式1:其中addformdatapart省略了(实际我是传递过去的)
RequestBody body =
new MultipartBody.Builder()
.setType(MultipartBody.
FORM)
.addFormDataPart(
"key"
,key)
//
[font='宋体']这里
addFormDataPart
[font='宋体']多个参数
[font='宋体'] .addFormDataPart(
"file"
, file.getName()
,
RequestBody.
create(MediaType.
parse(
"image/png")
, file))
.build()
;
这个情况返回
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>MalformedPOSTRequest</Code>
<Message>The body of your POST request is not well-formed multipart/form-data</Message>
<RequestId>57329DF4E36BDF822A9050D6</RequestId>
<HostId>img.test.koolink.com</HostId>
</Error>
情况2
RequestBody body =
new MultipartBody.Builder()
.setType(MultipartBody.
FORM)
.addFormDataPart(
"file"
, file.getName()
,
RequestBody.
create(MediaType.
parse(
"image/png")
, file))
.addFormDataPart(
"key"
,key)
//
[font='宋体']这里
addFormDataPart
[font='宋体']多个参数
[font='宋体'] .build()
;
返回结果:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidArgument</Code>
<Message>The bucket POST must contain the specified 'key'. If it is specified, please check the order of the fields</Message>
<RequestId>57329EB8E36BDF822A90AC3F</RequestId>
<HostId>img.test.koolink.com</HostId>
<ArgumentName>key</ArgumentName>
<ArgumentValue></ArgumentValue>
</Error>
很奇怪,但是我在window上面,使用postman,按照这些参数去提交,可以成功上传。
为什么用android端的okhttp就不可以呢?
我使用额okhttp是okhttp-3.2.0.jar,okio-1.8.0.jar。
我自己用原始java的servlet上传文件写了个接口,用上面的2中方式都可以拿到图片和键值对。
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。