javascript - 如何在 php 中通过 curl 发送请求负载

标签 javascript php web-services curl web-scraping

我在 php 中使用 curl 登录 danamon 银行。我已登录,但随后我尝试使用如下所示的 json 编码在 json 中发布请求负载 -

$data = [
      '__EVENTTARGET'        => $eventTarget,
      '__EVENTARGUMENT'        => $eventArgument,
      '__LASTFOCUS'        => '',
      '__VIEWSTATE'        => $__VIEWSTATE,
      'hdnActionCd'        => '',
      'hdnRandomKey'        => '',
      'hdnWUC'        => 'AcctMgmt/am_AcctSummaryNew_lst',
      'hdnLanguage'        => $hdnLanguage,
      'hdnPortlet'        => '',
      'Portlet1:hdnFunctionId'        => '',
      '_ctl0:_ctl8:ddlExRate'        => '1'
    ];

    $data = json_encode($data);

但正如我在浏览器工具中看到的那样,它们是这样发送的——

usercontrol: AcctMgmt/am_AcctSummaryNew_lst
------WebKitFormBoundaryH03FR3sFh5RDMJKt
Content-Disposition: form-data; name="__EVENTTARGET"
_ctl0:_ctl2
------WebKitFormBoundaryH03FR3sFh5RDMJKt
Content-Disposition: form-data; name="__EVENTARGUMENT"
09732747-7aad-42cc-94d7-1a77d3413656^003597205313^26^TABUNGAN DANAMON LEBIH^IDR^SA_N422
------WebKitFormBoundaryH03FR3sFh5RDMJKt--

我不确定他们如何将这些信息发送到服务器。 我认为他们在文件中使用了 put 方法,但我不确定。

最佳答案

我找到了问题的答案。

如果你想在 curl 中发送请求负载,那么应该使用 json 格式来发布数据添加 curl header -

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      "Content-Type:multipart/form-data"
    ));

在帖子中你需要添加 -

curl_setopt($ch, CURLOPT_POSTFIELDS, '@'.$data);

关于javascript - 如何在 php 中通过 curl 发送请求负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50529219/

相关文章:

php - 取消使用 PHP 提交的网络表单

c# - WCF 服务在 WebForm 中调用得太早?

javascript - JQuery 弹出框 - 错误

javascript - Sequelize 无效值 Symbol(ne)

javascript - 单击暂停按钮后计时器实际上并未停止

javascript - 如何从 C# 添加数据到动态添加的下拉列表

PHP 解引用数组元素

php - SQL:如何选择日期字段是特定月份的位置?

PHP 7 Zend Framework 2 获取Zend Framework版本

web-services - 国家、州、省 WebService?