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

如何上传文件通过请求负载使用curl php

戚承业
2023-03-14

我无法访问后端服务器,我通过网络分析了API。我想用那个API上传文件。我观察到,在对该API的post请求中没有参数。我观察到网络中的请求负载。

响应头

缓存控制:无缓存连接:保持活动内容长度:135内容类型:text/html;charset=utf-8日期:2016年8月6日星期六14:32:00 GMT地点:http://myURL服务器:nginx/1.2。3.设置Cookie:_mystore2_session=bah7cekid3nlc3npb25fawqgogzfrkkijtaxyzjhntbkymy4nzhjnzdmngy5owrhbjkief9jc3jmx3rva2vubjsarkkimxb0wel6nzksnzsnf2zvncttvxdnezoddqwkcxcxf1ritdb4d3o4wwwwwwww2ue9bjkig3bjjjjjjjjjjjjjjjjjjjzzzzjjjjjjjjzzzzjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjja930f3;路径=/;HttpOnly状态:302找到X-Rack-Cache:无效,通过X-Request-Id:3c843dc4dcb55bcf5f15e139264fa9be X-Runtime:0.884597 X-UA-Compatible:IE=Edge,chrome=1

请求头

接受:文本/html,应用程序/xhtml xml,应用程序/xml;q=0.9,图像/webp,/;q=0.8接受编码: gzip,收缩接受语言: en-US,en;q=0.8缓存控制:无缓存连接:保持活力内容长度: 642389内容类型:多部分/形式数据;边界=----WebKitFormBoundary2rjUr5SSxx3BXjGn Cookie: s=;lat_lon=33.69&73.0551;__utmt=1;_mystore2_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXX-c3c1b5d437fd04a80dc888822811d2d4d354ae29;__utma=129180296.2104761345.1470477279.1470488831.1470491357.3;__utmb=129180296.10.9.1470493699533;__utmc=129180296;__utmz=129180296.1470477279.1.1.utmcsr=(直接)|utmccn=(直接)|utmcmd=(无)主机:www.usedmotorcycles.net来源: myURL Pragma: no-ache Referer: myURL升级-不安全-请求: 1用户代理: Mozilla/5.0(Windows NT 6.2; WOW64)AppleWebKit/537.36(KHTML,像壁虎)Chrome/51.0.2704.103Safari /537.36

请求有效载荷

------WebKitFormBoundary2Jur5SSXX3BXJGN内容处理:表单数据;name=“utf8”

✓ ------WebKitFormBoundary2Jur5SSXX3BXJGN内容处理:表单数据;name=“真实性\u令牌”

ptxiz6vjjqvesbm5wvq387jzg4ql7tbl0xwz8yj6ia=----webkitformboundary2rur5ssxx3bxjgn内容处理:表单数据;name=“图像[附件]”;filename=“屏幕截图(156).png”内容类型:image/png

如何使用curl负载提交文件?

共有1个答案

聂宜
2023-03-14

quote:我注意到,对该API的post请求中没有参数错误,有一堆参数,举几个例子:Cookie:slat_lon\uuuutmtmystore2\u session\uuu utma,等等。

首先,它缺少请求类型(尽管它可能是一个POST请求),为了用curl复制它,它类似于:

<?php 
$ch=curl_init();
curl_setopt_array($ch,array(
CURLOPT_URL=>'???',
CURLOPT_ENCODING=>'',
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>array(
'Cookie:s'=>'',
'lat_lon'=>'33.69&73.0551',
'_mystore2_session'=>'BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARkkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsHOg5hbmFseXRpY3NUOgxzdWNjZXNzVDoMQGNsb3NlZEY6DUBmbGFzaGVzewc7CnsIOg1jYXRlZ29yeUkiDENvbnRhY3QGOwBGOgthY3Rpb25JIhFsZWFkX2NhcHR1cmUGOwBGOgpsYWJlbEkiFFNlbGwgTW90b3JjeWNsZQY7AEY7C0kiLFVwbG9hZCBpbWFnZXMgdG8gYWN0aXZhdGUgeW91ciBsaXN0aW5nIQY7AEY6CUBub3cw--c3c1b5d437fd04a80dc888822811d2d4d354ae29',
'image'=>array(new CURLFile('/path/to/file.png','image/png','Screenshot (156).png'))
//and more post data here.

),
CURLOPT_HTTPHEADER=>array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8',
'Accept-Language: en-US,en;q=0.8',
'Cache-Control: no-cache',
'Pragma: no-cache',
'Origin: myURL',
//and more headers here
),
CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
));
curl_exec($ch);

注意:这不是完整的代码,它缺少CURLOPT_POSTFIELDCURLOPT_HTTPHEADER的一组数据,但这应该可以帮助您开始

 类似资料:
  • 我可以使用将文件上载为 上面的代码运行良好。 现在,我想对同一作业使用。我试着在网上搜索并实现代码。但我无法得到结果。 html代码如下所示: 代码中没有任何形式。如何解决问题?

  • 我正在执行使用Python请求库上传文件的简单任务。我搜索了Stack Overflow,似乎没有人遇到同样的问题,即服务器无法接收文件: 我正在用我的文件名填充upload_file关键字的值,因为如果我把它留空,它会说 现在我得到了 只有当文件为空时才会显示。所以我一直在思考如何成功地发送文件。我知道这个文件是有效的,因为如果我去这个网站手动填写表单,它会返回一个匹配对象的列表,这就是我想要的

  • 本文向大家介绍通过Ajax方式上传文件使用FormData进行Ajax请求,包括了通过Ajax方式上传文件使用FormData进行Ajax请求的使用技巧和注意事项,需要的朋友参考一下 通过传统的form表单提交的方式上传文件: Html代码  不过传统的form表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用Ajax的方式进行请求的: Js代码  如上,通过$(

  • 问题内容: 通过XHR请求下载pdf文件是否完全不可能?我知道已经有许多关于此主题的讨论,但可悲的是,我仍然对它们不满意。我正在使用AngularJs并使用其方法发出请求。它不返回任何文件下载弹出窗口。但是,如果在新的“浏览器窗口”中使用相同的URL进行点击,则会弹出一个窗口。我已经尝试了一个工作环境,并且可以正常工作,但是如果执行此操作,那么在下载弹出窗口准备就绪并出现之前,我无法显示等待的图像

  • 问题内容: 我正在执行一个使用Python请求库上传文件的简单任务。我搜索了Stack Overflow,似乎没有人遇到相同的问题,即服务器未收到该文件: 我用文件名填充了’upload_file’关键字的值,因为如果我将其保留为空白,则表示 现在我明白了 仅当文件为空时才会出现。因此,我对如何成功发送文件感到困惑。我知道该文件有效,因为如果我访问此网站并手动填写表格,它将返回一个很好的匹配对象列

  • 我对通过编程(通过HTTP POST或PUT请求)将文件(在我的例子中是图像或pdf)上传到Django应用程序的过程感到非常困惑。我读过医生的报告,但我必须承认它没有帮我度过难关。最让我困惑的是模板(和表单):为什么我需要在视图中指定模板和表单? 我只想将一个文件发送到一个目录,我想知道在Django部分和请求部分(内容类型…?)上执行此操作需要什么 我真的很感激任何人能在这里给我指明方向...