繁体   English   中英

无法为我的Android应用程序使用Java中的okHTTP multipart-form数据重新创建cURL POST请求

[英]Not able to recreate a cURL POST request using okHTTP multipart-form data in Java for my android app

我已经尝试了两天,以了解如何复制卷曲请求以将图像添加到Craftar图像识别集合中。 我可以创建一个项目,但是设置多部分数据代码的方法使我失败了。 Craftar仅提供有关如何发布图像文件以将其附加到收藏夹项目的cURL语句。

我尝试使用RequestB.in和Postman来查看我在邮件传输中看到的内容,以便找出答案,但是okHTTP方法的组合似乎无济于事。 我很沮丧 我已经尝试将“ image / png”和“ application / octet-stream”作为我的MediaTypes。 当我使用Postman向其发送测试请求时,RequestB.in显示为“ application / octet-stream”。 以下是它显示的消息信息。

这是我要用Java复制的cURL语句。

卷曲-X POST ' https://my.craftar.net/api/v0/image/api_key=123456789abcdefghijk123456789abcdefghijk ' -F “项= / API / V0 /项目/ d05924dde1784787a3d6b815e2b1cd69 /” -F “file=@back_cover.jpg”

这是我的代码:

        public class OkHttpHandler extends AsyncTask<String, Void, String> {

        OkHttpClient client = new OkHttpClient();

        @Override
        protected String doInBackground(String... params) {

            File storageDir = Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_PICTURES);
            File file = new File("/storage/emulated/0/Pictures/BlissBotSenderImages/kaytiandkristoffer.jpg");
            RequestBody requestBody = new MultipartBody.Builder()
                    .setType(MultipartBody.FORM)
                    .addFormDataPart("item", "/api/v0/item/d05924dde1784787a3d6b815e2b1cd69/")
                    .addFormDataPart("file","kaytiandkristoffer.jpg",
                    (RequestBody.create (MEDIA_TYPE_PNG, file)))
                    .build();

            Request request = new Request.Builder()
                    .url(postImageUrl)
                    .post(requestBody)
                    .build();

            try {
                Response response = client.newCall(request).execute();
                return response.body().string();
            } catch (Exception e) {
                e.printStackTrace();
            }

以下是RequestB.in成功的Postman邮件详细信息:


格式/后置参数项目:/ api / v0 / item / d05924dde1784787a3d6b815e2b1cd69 /

接头Cf-Ray:3cdba305fb509b62-DFW

通过:1.1 vegur

Cf访客:{“ scheme”:“ https”}

内容类型:多部分/表单数据; 边界= a11df5d0-f007-4d3a-9849-18fe334c532c

接受编码:gzip

内容长度:3509853

总路线时间:0

CF连接IP:2001:5b0:42c4:2ae8:2954:59ea:a3e8:4787

X-Request-Id:766063f7-c368-4467-b5ed-42776ac6f528

主持人:requestb.in

连接方式:关闭

Cf-Ipcountry:美国

用户代理:okhttp / 3.9.1

连接时间:1

原始文件--a11df5d0-f007-4d3a-9849-18fe334c532c内容处置:form-data; name =“ item”内容长度:46

/ api / v0 / item / d05924dde1784787a3d6b815e2b1cd69 / --a11df5d0-f007-4d3a-9849-18fe334c532c内容配置:表单数据; name =“文件”; filename =“ kaytiandkristoffer.jpg”内容类型:application / octet-stream内容长度:3509467

ExØÿáExifII*
¦°¸(1À2ÎiânSAMSUNGSPH-L720THHL720TVPUBNG52015:04:05 21:22:25 \\ d“'20220l

¤¬´
¼| BIA 0100 P¢£¤¤¤¤¤ÌåÜd2015:04:05 21:22:252015:04:05 21:22:25ìäd2äd¤dASCIINVMU^^; YgZHXgmGum {wsxÞ¾ï2ì2åÞ¾ïso|Þ¾ïÞ¾ïs|Þ¾ïUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU〜Þ¾ïxt¡vuÞ¾ïCALCur| 0xDD70utvp {vVigcjijHrimoaJi [pnL sEX \\ ?; I99:C9SHxVBS?@ 4 9? _޾ﮮ®®Fèþ»)q5èêÈìµ×2þJ +'#ÿê%:pF}-©}½-©.^2@E×û »'%('%$.!!$$#&*@Þ¾ï "# E-&3>-JR>GSnxfZcZ[U]R]]W^SOXM¨a~ziqkfeheUY[nzzvra~eh[Rh\\belL[NGI>RNbddqmIAIEIGNRNAAD59<-4':ZD/#.BA8$$$@8JG\\qgZ~{qmcy[\\~rhttcio xtne ^ y {{r〜vmxr | rsweu {gw {iqs〜ozgvy | xxffwnyyZk | WW yvt{|s}wz{zw~|vvxsjquxyykdv}jtp{}{ryY~vv}tqx{pgjsolzq~ftxrkug{|Sjqn|w]kwlq}mssij~r|||zn|}w|u{j~tmHztMvoBZlV Gt [aUp]>?,306A7 $!BB13-

(60,!%6H @ ELEB @ 6%KVJ @ t; 04 OFC4-'#$ * 71。; ^ M @ IVTMF @ L> dkL,:KE7 <%$?MxIu®crZs/ Y7Z / DDS_WVRgT ^ VGPb^gTORN4%Lo |p«¼ÇÓÎÄÅÃô¬°¦qg?NOa\\rl\\T N; XL“ e5F = H = ASlOjTwd \\ dclSVXsnXXWYcG7B-XTK:cabfgfiitnW / $ 5)E28512 * 1 $ 1M + 4G @ 8 / BC3,4' <,12 ='/ +-3%2,A()')&。+'6.&C?),1 @ / 52 $-%8; 93(-+),#。= +%** + '6 $ 51(“ @'K /,#!%+!(”#&$,+($)!%88!.- 0 && $'!#+'&$(5 / ,); --- 0 5,2!+& “ 0 /(&”)$ + <&(#$“ + /&”#9 *#$&$“%” $$ !!#&/ 0 *($$(' !$&“#。1&

有时会发生问题,而问题出在其他地方。 我不小心在端点的地址中插入了一个多余的字符。 我解决了这个问题,上面的代码可以找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM