簡體   English   中英

PHP中的CURL POST請求中的JSON正文

[英]JSON body in a CURL POST request in PHP

使用CURL Post到一個寧靜的后端服務。 在Firefox中使用RESTClient擴展,我得到了預期的響應。

所以我在CURL中設置了我的授權,接受和內容類型標題

$ch = curl_init();  
curl_setopt_array(
    $ch, 
    array(
        CURLOPT_HTTPHEADER => array('User-Agent: Mozilla Firefox', 'Accept: application/json', 'Authorization: Basic v3iYdNlAcGxlKASocYkadkCSCIDpsdkFDJ='),
        CURLOPT_URL => 'http://myurl.com/restfulservice/',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $jsonpoststring,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC | CURLAUTH_ANY,
        CURLOPT_USERPWD => sprintf('%s;%s', 'foo@bar.com', 'somepassword'),
        CURLOPT_SSL_VERIFYPEER => false
    )
);
$output = curl_exec($ch);
curl_close($ch);

在RESTClient中,我體內有此JSON

{"authentication":{"identification":{"identstring":"foo@bar.com","identId":1},"security":{"securestring":"Password1", "secureId":3}},"externIdent":{"externAuth":{"hashauth":"K3DvhinSb7H","district":"iad"}}}

我的問題是:如何在PHP Curl請求中包含該主體。

在郵場中傳遞

jsonpoststring='{"authentication":{"identification":{"identstring":"foo@bar.com","identId":1},"security":{"securestring":"Password1", "secureId":3}},"externIdent":{"externAuth":{"hashauth":"K3DvhinSb7H","district":"iad"}}}
';
$ch = curl_init();  
curl_setopt_array(
    $ch, 
    array(
        CURLOPT_HTTPHEADER => array('User-Agent: Mozilla Firefox', 'Accept: application/json', 'Authorization: Basic v3iYdNlAcGxlKASocYkadkCSCIDpsdkFDJ='),
        CURLOPT_URL => 'http://myurl.com/restfulservice/',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $jsonpoststring,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC | CURLAUTH_ANY,
        CURLOPT_USERPWD => sprintf('%s;%s', 'foo@bar.com', 'somepassword'),
        CURLOPT_SSL_VERIFYPEER => false
    )
);
$output = curl_exec($ch);
curl_close($ch);

這應該可以解決問題

$data = json_decode('{"authentication":{"identification":{"identstring":"foo@bar.com","identId":1},"security":{"securestring":"Password1", "secureId":3}},"externIdent":{"externAuth":{"hashauth":"K3DvhinSb7H","district":"iad"}}}');

$ch = curl_init();  
curl_setopt_array(
    $ch, 
    array(
        CURLOPT_HTTPHEADER => array('User-Agent: Mozilla Firefox', 'Accept: application/json', 'Authorization: Basic v3iYdNlAcGxlKASocYkadkCSCIDpsdkFDJ='),
        CURLOPT_URL => 'http://myurl.com/restfulservice/',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPAUTH => CURLAUTH_BASIC | CURLAUTH_ANY,
        CURLOPT_USERPWD => sprintf('%s;%s', 'foo@bar.com', 'somepassword'),
        CURLOPT_SSL_VERIFYPEER => false
    )
);
$output = curl_exec

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM