Goutte\Clientでスクレイピングというより自動化をしていたんですが、
FormではなくonclickでAJAX的にPOSTしている画面があって
Goutteは基本
$cli = new Client();
$top = $cli->request('GET', "https://admin.abcd.efg/aaa");
$loginForm = $top->filter('form')->form();
$loginForm['text'] = 'hello';
$cli->submit($loginForm);
てな感じでFormありきじゃないといけないっぽいので、
"formじゃないinput"に別途入れる方法ないかな?って探しまくって
途方に暮れていたら
いっそうのことPOSTを投げればいいんじゃないか!とひらめき
ブラウザのDevToolでネットワークを覗き、cURLで取得してみたら
POSTでJSONを送ってる感じだった。
とはいえ、POSTでJSON送りつけるやり方わからず相変わらず途方に暮れていたら
https://qiita.com/kouma1990/items/8ec2acbc8a9307bc206a
の記事を発見!これすごい!!
ということで目的のPOSTでJSONを送るというやりたいことは実現できました。
ありがとうございます。感謝感謝
$postdata["name"]="aaa";
$postdata["text"]="hello";
$options = JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT | JSON_PRETTY_PRINT;
$issue = $cli->request('POST', "https://admin.abcd.efg/aaa",
array(), array(), array('HTTP_CONTENT_TYPE' => 'application/json'), json_encode($postdata, $options)
);
$res = $cli->getResponse();
echo $res->getStatusCode()."\n";