2016-08-06 11 views
1

私はバックエンドサーバにアクセスできず、ネットワークを介してAPIを分析しました。私はそのAPIを使用してファイルをアップロードしたいと思います。私はそのAPIへのポストリクエストにパラメータがないことを観察しました。ネットワーク内の要求ペイロードを観察しました。curl phpを使用してリクエストペイロード経由でファイルをアップロードする方法

レスポンスヘッダー

のCache-Control:キャッシュなし 接続:キープアライブ のContent-Length:135 のContent-Type:text/htmlの。文字セット= UTF-8 日:土、2016年8月6日14時32分○○秒GMT 場所:http://myURL サーバー:nginxの/ 1.2.3 のSet-Cookie:_mystore2_session = BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJTAxYzJhNTBkYmY3ZTRkYTBhYmY4NzhjNzdmNGY5OWRhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXB0WEl6NnZKSnF2ZVNCTTVXdnEzODdqWkc0cXFsN1RiTDB4d3o4WWo2aUE9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIQU3ByZWU6OlVzZXIGOwBGWwZpAzggAUkiGXk0MTFIUTdVUktORkh2MzFCeEtFBjsARg%の3D%の3D - 63863b861eb33b48b3137d187b2113fe90a930f3。パス= /; HttpOnlyの ステータス:302は見つかり X-ラックキャッシュ:3c843dc4dcb55bcf5f15e139264fa9be X-ランタイム:0.884597 X-UA-の互換性: X-要求-IDを渡し、無効にIE =エッジ、クロム= 1

リクエストヘッダ

受け入れ:text/htmlの、アプリケーション/ XHTML + xmlの、アプリケーション/ XML、Q = 0.9、画像/ WEBP、/; Q = 0.8 受け入れエンコード:gzipで、収縮 なAccept-言語:en-US、en; q = 0.8 Cache-Contro l:no-cache 接続:キープアライブ コンテンツの長さ:642389 コンテンツタイプ:multipart/form-data;境界= ---- 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アップグレード-Insecure-を リクエスト:1 User-Agent:Mozilla/5.0(Windows NT 6.2; WOW64)AppleWebKit/537.36(GeckoのようなKHTML)Chrome/51.0.2704.103 Safari/537。36

要求ペイロード

------ WebKitFormBoundary2rjUr5SSxx3BXjGn コンテンツの廃棄:フォームデータ。名前= "utf8"

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

ptXIz6vJJqveSBM5Wvq387jZG4qql7TbL0xwz8Yj6iA = ------ WebKitFormBoundary2rjUr5SSxx3BXjGn コンテンツディスポジション:フォームデータ;名前= "イメージ[添付]";ファイルサイズ: "Screenshot(156).png" コンテンツタイプ:image/png

どのようにファイルを提出するためにcurlペイロードを使用できますか?

+1

問題がコードに含まれている場合に、ヘッダーのみを使用してこれをデバッグすると思われる理由はわかりません。 – Machavity

+0

私はヘッダから守ってペイロードをリクエストして、どのパラメータを送るべきかをリクエストする必要があります(MVCEページをチェックしてください)(http://stackoverflow.com/help/mcve)これは後のリクエストであり、私はフォームのパラメータを確認していませんでした。 –

+0

'私は、そのAPIへのポストリクエストにパラメータがないことに気づきました。'間違い、いくつかのパラメータがあります: 'Cookie:s'、' lat_lon' 、 '__utmt'、' _mystore2_session'、 '__utma'、AND MORE – hanshenrik

答えて

1

引用:I have observed that there are no parameters in post request to that API 間違っは、パラメータの束は、少数を示すために、あります:Cookie:slat_lon__utmt_mystore2_session__utma、AND MORE。

また、これはあなたが私たちに示している完全なリクエストヘッダーではありません。

<?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); 

ノート::これは完全なコードではありません、それが欠けている1のために、カールでこれを複製するために、とにかく 要求タイプ(そのおそらくPOSTリクエストが) を欠けている、それはのようなものですCURLOPT_POSTFIELDCURLOPT_HTTPHEADERのデータが集まっていますが、これは始めるべきです

関連する問題