如何使用curl php通过请求有效负载上传文件 [英] how to upload file via request payload using curl php

查看:242
本文介绍了如何使用curl php通过请求有效负载上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我没有后端服务器的访问权限,我通过网络分析了API。我想使用该API上传文件。我观察到对该API的后期请求中没有参数。我观察到network中的请求有效负载。

I do not have access of back end server and i analysed the API via network. I want to upload file using that API.I have observed that there are no parameters in post request to that API .I observed request payload in network .


响应标题

Response Header

缓存控制:no-cache
连接:保持活动
内容长度:135
内容类型:text / html; charset = utf-8
日期:2016年8月6日星期六14:32:00 GMT
位置: http:// myURL
服务器:nginx / 1.2.3
的Set-Cookie:_mystore2_session = BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARg%3D%3D - 63863b861eb33b48b3137d187b2113fe90a930f3;路径= /; HttpOnly
状态:302已找到
X-Rack-Cache:无效,通过
X-Request-Id:3c843dc4dcb55bcf5f15e139264fa9be
X运行时:0.884597
X-UA-兼容:IE = Edge,chrome = 1

Cache-Control:no-cache Connection:keep-alive Content-Length:135 Content-Type:text/html; charset=utf-8 Date:Sat, 06 Aug 2016 14:32:00 GMT Location:http://myURL Server:nginx/1.2.3 Set-Cookie:_mystore2_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARg%3D%3D--63863b861eb33b48b3137d187b2113fe90a930f3; path=/; HttpOnly Status:302 Found X-Rack-Cache:invalidate, pass X-Request-Id:3c843dc4dcb55bcf5f15e139264fa9be X-Runtime:0.884597 X-UA-Compatible:IE=Edge,chrome=1


请求标头

Request Header

接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8
Accept-Encoding: gzip,deflate
Accept-Language:en-US,en; q = 0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:642389
Content-Type:多部分/表单数据; boundary = ---- WebKitFormBoundary2rjUr5SSxx3BXjGn
Cookie:s =; lat_lon = 33.69%2673.0551; __utmt = 1; _mystore2_session = BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARkkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsHOg5hbmFseXRpY3NUOgxzdWNjZXNzVDoMQGNsb3NlZEY6DUBmbGFzaGVzewc7CnsIOg1jYXRlZ29yeUkiDENvbnRhY3QGOwBGOgthY3Rpb25JIhFsZWFkX2NhcHR1cmUGOwBGOgpsYWJlbEkiFFNlbGwgTW90b3JjeWNsZQY7AEY7C0kiLFVwbG9hZCBpbWFnZXMgdG8gYWN0aXZhdGUgeW91ciBsaXN0aW5nIQY7AEY6CUBub3cw - 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
语法:无缓存
引荐来源:myURL
升级不安全请求:1
用户代理:Mozilla / 5.0(Windows NT 6.2; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 51.0.2704.103 Safari / 537.36

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 Accept-Encoding:gzip, deflate Accept-Language:en-US,en;q=0.8 Cache-Control:no-cache Connection:keep-alive Content-Length:642389 Content-Type:multipart/form-data; boundary=----WebKitFormBoundary2rjUr5SSxx3BXjGn Cookie:s=; lat_lon=33.69%2673.0551; __utmt=1; _mystore2_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARkkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsHOg5hbmFseXRpY3NUOgxzdWNjZXNzVDoMQGNsb3NlZEY6DUBmbGFzaGVzewc7CnsIOg1jYXRlZ29yeUkiDENvbnRhY3QGOwBGOgthY3Rpb25JIhFsZWFkX2NhcHR1cmUGOwBGOgpsYWJlbEkiFFNlbGwgTW90b3JjeWNsZQY7AEY7C0kiLFVwbG9hZCBpbWFnZXMgdG8gYWN0aXZhdGUgeW91ciBsaXN0aW5nIQY7AEY6CUBub3cw--c3c1b5d437fd04a80dc888822811d2d4d354ae29; __utma=129180296.2104761345.1470477279.1470488831.1470491357.3; __utmb=129180296.10.9.1470493699533; __utmc=129180296; __utmz=129180296.1470477279.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) Host:www.usedmotorcycles.net Origin:myURL Pragma:no-cache Referer:myURL Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36


请求有效载荷

Request Payload

------ WebKitFormBoundary2rjUr5SSxx3BXjGn
内容处置:表格数据; name = utf8

------WebKitFormBoundary2rjUr5SSxx3BXjGn Content-Disposition: form-data; name="utf8"


------ WebKitFormBoundary2rjUr5SSxx3BXjGn
内容处置:表单数据; name = authenticity_token

✓ ------WebKitFormBoundary2rjUr5SSxx3BXjGn Content-Disposition: form-data; name="authenticity_token"

ptXIz6vJJqveSBM5Wvq387jZG4qql7TbL0xwz8Yj6iA =
------ WebKitFormBoundary2rjUr5SSxx3BXjGn
内容处置表单: name = image [attachment]; filename = Screenshot(156).png
内容类型:image / png

ptXIz6vJJqveSBM5Wvq387jZG4qql7TbL0xwz8Yj6iA= ------WebKitFormBoundary2rjUr5SSxx3BXjGn Content-Disposition: form-data; name="image[attachment]"; filename="Screenshot (156).png" Content-Type: image/png

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

How i can use curl payload to submit my file?

推荐答案

quote:我观察到对该API的后期请求中没有参数
错误,有很多参数,仅举几例: Cookie:s lat_lon __ utmt _mystore2_session __ utma 等。

quote: I have observed that there are no parameters in post request to that API Wrong, there's a bunch of parameters, to name a few: Cookie:s, lat_lon, __utmt, _mystore2_session, __utma, AND MORE.

此外,这不是您要向我们显示的完整请求标头。一方面,它缺少
请求类型(尽管可能是POST请求)
,要使用curl复制它,就像:

Also, that's not the complete request header you're showing us. for one, it's missing the request type (though its probably a POST request) anyway, to replicate this with curl, it's something like:

<?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_POSTFIELD CURLOPT_HTTPHEADER 的数据,但这应该可以帮助您

note: this is NOT the complete code, it's missing a bunch of data for CURLOPT_POSTFIELD and CURLOPT_HTTPHEADER , but this should get you started

这篇关于如何使用curl php通过请求有效负载上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆