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

如何在PHP中使用cURL获得此多部分/表单数据请求?

乐正涵意
2023-03-14

我很难用PHP cURL发布到API。我觉得我已经尝试了每种组合。我的脚本正在连接,但问题在负载范围内。

这是根据文档所需的请求

--85b890d4-4faf-4261-bcbb-187c4dddcbc6内容类型:application/vnd.emc。ax json;charset=utf-8内容配置:表单数据;名称=数据

{
"Name": "batch name",
"Description": "batch description",
 "Private": false
}

--85b890d4-4faf-4261-bcb-187c4dddcbc6内容类型:应用程序/bin内容配置:form-data; name=bin;文件名="test.pdf;文件名*=utf-8"test.pdf

//bin文件内容

-85b 890d 4-4faf-4261-BCB b-187 C4 dddcbc 6内容-类型:应用程序/bin内容-处置:表单-数据;name = annotationfilename = " 0100002m.anofilename*=utf-8''0100002m.ano

//注释文件内容

--85b890d4-4faf-4261-bcbb-187c4dddcbc6 内容类型: 应用程序/bin 内容处置: 表单数据;名称 = 文本;文件名=“test.txt”;文件名*=utf-8''test.txt

//ocr文件内容

-85b 890 D4-4faf-4261-BCB b-187 C4 dddcbc 6-

这是我的密码

$file = file_get_contents("tiff/test.TIF");

$curl = curl_init();
$data = array(
    'Content-Type: application/vnd.emc.ax+json; charset=utf-8 Content Disposition: form-data; name=data', 
    '{"Name":"Here is my Name","Description":"Testing This","Private":false}', 
    chunk_split(base64_encode($file))
);

curl_setopt_array($curl, array(
    CURLOPT_URL =>"*********************************",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $d,
    CURLOPT_HTTPHEADER => array(
        "Authorization: **********************************",
        "Content-Type: multipart/form-data; boundary=85b890d4-4faf-4261-bcbb-187c4dddcbc6",

  ),
));

curl_close($curl);

我的代码产生此错误:

{"ErrorCode": 9999,"Message":"MIME多部分流意外结束。MIME多部分消息不完整。","InnerException": null}

有人能帮帮我吗?

共有1个答案

羊舌迪
2023-03-14

我使用带有多部分的纯 CURL 上传文件进行了实现。试试这个:

curl -X POST \
  http://youhosturl/path/to/you/endpoint \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F 'my_file=@/Users/MyUser/Desktop/any-image.jpg'

这对我有用

 类似资料:
  • 问题内容: 我正在编写一个RESTful API。我在使用不同的动词上载图像时遇到麻烦。 考虑: 我有一个对象,可以通过对URL的发布/放置/删除/获取请求来创建/修改/删除/查看。如果有要上载的文件,则请求是多部分形式;如果只有文本要处理,则请求是application / xml。 为了处理与对象相关的图像上传,我正在做类似的事情: 这里的主要问题是在尝试处理放置请求时,显然$ _POST不包

  • 所以我有一个网站,我正在建设,它将使用数据库中的数据来填写不同网站上的表格。现在我明白了,这可以很容易地用cURL或python来完成,但是,当我截取和读取post数据时,通常会非常混乱。例如,在此表单中,只有注释和分级选项,但包含所有类型的其他垃圾:

  • 当我点击这个api时,我得到错误“415:Unsupported Media type”,这意味着不受支持的头。我想将文件从ARC加载到控制器。 我在pom.xml文件中添加了一些maven依赖项。 我的pom文件:

  • 问题内容: 我想拥有一个独立的PHP类,在这里我想拥有一个通过cURL调用API并获取响应的函数。有人可以帮我吗? 谢谢。 问题答案: 只需使用下面的代码即可获得来自宁静的Web服务URL的响应,而我使用的是社交提及URL。

  • 我有一个问题:我试图发送标题,但什么也没发生。 这是“Live HTTPHeaders”(我替换了url)标题的一部分: 这是我的代码: 我做错了什么? 谢谢你! P. S.嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿!!!!我解决了!感谢大家的收看!祝你好运

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